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;
}
}
}