protected void UpdateStyles() { if ( Created ) { REBARBANDINFO rbBand = new REBARBANDINFO(); rbBand.cbSize = (uint)Marshal.SizeOf( rbBand ); rbBand.fMask = (uint)win32.RBBIM_STYLE; rbBand.fStyle = (uint)Style; if ( win32.SendMessage( _bands.Rebar.RebarHwnd, (int)win32.RB_SETBANDINFOA, BandIndex, ref rbBand ) == 0 ) { int LastErr = Marshal.GetHRForLastWin32Error(); try { Marshal.ThrowExceptionForHR( LastErr ); } catch ( Exception ex ) { Console.WriteLine( LastErr + " " + ex.Message ); if ( _throwExceptions ) throw (new Exception( "Error Updating Styles.", ex )); } } } }
internal void CreateBand() { if ( !Created && _bands != null && _bands.Rebar.NativeRebar != null ) { if ( _child != null ) _child.Parent = _bands.Rebar; REBARBANDINFO rbBand = new REBARBANDINFO(); rbBand.cbSize = (uint)Marshal.SizeOf( rbBand ); rbBand.fMask = (uint)(win32.RBBIM_STYLE | win32.RBBIM_ID | win32.RBBIM_TEXT );//| RebarBandInfoConstants.RBBIM_HEADERSIZE); if ( !_useCoolbarColors ) rbBand.fMask |= (uint)win32.RBBIM_COLORS; if ( _child != null ) //Add ChildSize stuff at some point { rbBand.fMask |= (uint)win32.RBBIM_CHILD; } rbBand.fMask |= (uint)win32.RBBIM_CHILDSIZE; if ( _image >= 0 ) rbBand.fMask |= (uint)win32.RBBIM_IMAGE; if ( _backgroundImage != null ) { rbBand.fMask |= (uint)win32.RBBIM_BACKGROUND; } rbBand.cx = (uint)_bandSize; rbBand.fMask |= (uint)win32.RBBIM_SIZE; rbBand.fMask |= (uint)win32.RBBIM_IDEALSIZE; rbBand.clrFore = new COLORREF( ForeColor ); rbBand.clrBack = new COLORREF( BackColor ); rbBand.fStyle = (uint)Style; if ( _backgroundImage != null ) { rbBand.hbmBack = _pictureHandle; } rbBand.lpText = _caption; if ( _child != null ) { rbBand.hwndChild = _child.Handle; rbBand.cxMinChild = (uint)_minWidth; rbBand.cyMinChild = (uint)_minHeight; rbBand.cyIntegral = (uint)_integral;//0; rbBand.cyChild = (uint)_minHeight; rbBand.cyMaxChild = (uint)_maxHeight; rbBand.cxIdeal = (uint)_idealWidth; } if ( _showIcon ) { rbBand.iImage = _image; } rbBand.wID = (uint)_id; rbBand.cxHeader = (uint)_header; if ( win32.SendMessage( _bands.Rebar.RebarHwnd, (int)win32.RB_INSERTBANDA, -1, ref rbBand ) == 0 ) { int LastErr = Marshal.GetHRForLastWin32Error(); try { Marshal.ThrowExceptionForHR( LastErr ); } catch ( Exception ex ) { Console.WriteLine( LastErr + " " + ex.Message ); if ( _throwExceptions ) throw (new Exception( "Error Creating Band.", ex )); } } else { _created = true; } } }
protected void UpdateMinimums() { //return; if ( Created ) { REBARBANDINFO rbBand = new REBARBANDINFO(); rbBand.cbSize = (uint)Marshal.SizeOf( rbBand ); rbBand.fMask = (uint)(win32.RBBIM_CHILDSIZE); if ( _header != -1 ) rbBand.fMask |= (uint)win32.RBBIM_HEADERSIZE; rbBand.cxMinChild = (uint)_minWidth; rbBand.cyMinChild = (uint)_minHeight; rbBand.cyIntegral = (uint)_integral;//1; rbBand.cyChild = (uint)_minHeight; rbBand.cyMaxChild = (uint)_maxHeight; rbBand.cxIdeal = (uint)_idealWidth; rbBand.cxHeader = (uint)_header; if ( win32.SendMessage( _bands.Rebar.RebarHwnd, (int)win32.RB_SETBANDINFOA, BandIndex, ref rbBand ) == 0 ) { int LastErr = Marshal.GetHRForLastWin32Error(); try { Marshal.ThrowExceptionForHR( LastErr ); } catch ( Exception ex ) { Console.WriteLine( LastErr + " " + ex.Message ); if ( _throwExceptions ) throw (new Exception( "Error Updating Minimums.", ex )); } } } }
protected void UpdateIcon() { if ( Created ) { REBARBANDINFO rbBand = new REBARBANDINFO(); rbBand.cbSize = (uint)Marshal.SizeOf( rbBand ); rbBand.fMask = (uint)win32.RBBIM_IMAGE; if ( _showIcon ) { rbBand.iImage = _image; } else { rbBand.iImage = -1; } if ( win32.SendMessage( _bands.Rebar.RebarHwnd, (int)win32.RB_SETBANDINFOA, BandIndex, ref rbBand ) == 0 ) { int LastErr = Marshal.GetHRForLastWin32Error(); try { Marshal.ThrowExceptionForHR( LastErr ); } catch ( Exception ex ) { Console.WriteLine( LastErr + " " + ex.Message ); if ( _throwExceptions ) throw (new Exception( "Error Updating Icon.", ex )); } } } }
protected void UpdateColors() { if ( Created ) { REBARBANDINFO rbBand = new REBARBANDINFO(); rbBand.cbSize = (uint)Marshal.SizeOf( rbBand ); rbBand.fMask = (uint)win32.RBBIM_COLORS; if ( _useCoolbarColors ) { rbBand.clrBack = new COLORREF(); rbBand.clrBack._ColorDWORD = (uint)win32.CLR_DEFAULT; rbBand.clrFore = new COLORREF(); rbBand.clrFore._ColorDWORD = (uint)win32.CLR_DEFAULT; } else { rbBand.clrBack = new COLORREF( _backColor ); rbBand.clrFore = new COLORREF( _foreColor ); } if ( win32.SendMessage( _bands.Rebar.RebarHwnd, (int)win32.RB_SETBANDINFOA, BandIndex, ref rbBand ) == 0 ) { int LastErr = Marshal.GetHRForLastWin32Error(); try { Marshal.ThrowExceptionForHR( LastErr ); } catch ( Exception ex ) { Console.WriteLine( LastErr + " " + ex.Message ); if ( _throwExceptions ) throw (new Exception( "Error Updating Foreground and Background Colors.", ex )); } } } }
private void UpdateChildByHandle( IntPtr handle ){ if ( Created ) { REBARBANDINFO rbBand = new REBARBANDINFO(); rbBand.cbSize = (uint)Marshal.SizeOf( rbBand ); rbBand.fMask = (uint)win32.RBBIM_CHILD; if ( handle.Equals( IntPtr.Zero ) ) { rbBand.hwndChild = IntPtr.Zero; } else { rbBand.hwndChild = handle; } if ( win32.SendMessage( _bands.Rebar.RebarHwnd, (int)win32.RB_SETBANDINFOA, BandIndex, ref rbBand ) == 0 ) { int LastErr = Marshal.GetHRForLastWin32Error(); try { Marshal.ThrowExceptionForHR( LastErr ); } catch ( Exception ex ) { Console.WriteLine( LastErr + " " + ex.Message ); if ( _throwExceptions ) throw (new Exception( "Error Updating Child.", ex )); } } UpdateMinimums(); } }
public static extern uint SendMessage( IntPtr hWnd, int Msg, int wParam, ref REBARBANDINFO lParam );