Type | Description | |||
Part as PartEnum | A PartEnum expression that's responsible for its drawing | |||
Boolean | A Boolean expression that indicates whether the user is responsible for drawing the specified part, or not. |
The control paints the parts in the following order ( only if visible ):
For instance, the following VB sample draws the lower part in red, and the upper part in green ( as in the screen shot ) :
With Slider1 .OwnerDrawPart(exLowerBackPart Or exUpperBackPart) = True End With
Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Private Declare Function GetClipBox Lib "gdi32" (ByVal hdc As Long, lpRect As RECT) As Long Private Declare Function FillRect Lib "user32" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long Private Sub Slider1_OwnerDrawEnd(ByVal Part As EXSLIDERLibCtl.PartEnum, ByVal hdc As Long) Dim r As RECT, h As Long GetClipBox hdc, r r.Left = r.Left + 4 r.Right = r.Right - 4 If Part = exLowerBackPart Then h = CreateSolidBrush(RGB(255, 0, 0)) FillRect hdc, r, h DeleteObject (h) Else If Part = exUpperBackPart Then h = CreateSolidBrush(RGB(0, 255, 0)) FillRect hdc, r, h DeleteObject (h) End If End If End Sub
The following C++ sample draws the lower part in red, and the upper part in green ( as in the screen shot ) :
m_slider.SetOwnerDrawPart( 128 /*exUpperBackPart*/, TRUE ); m_slider.SetOwnerDrawPart( 512 /*exLowerBackPart*/, TRUE );
void OnOwnerDrawEndSlider1(long Part, long hDC) { HDC h = (HDC)hDC; RECT rtPart = {0}; GetClipBox( h, &rtPart ); InflateRect( &rtPart, -4, 0 ); switch ( Part ) { case 128: /*exUpperBackPart*/ { HBRUSH hB = CreateSolidBrush( RGB(0,255,0) ); FillRect( h, &rtPart, hB ); DeleteObject( hB ); break; } case 512: /*exLowerBackPart*/ { HBRUSH hB = CreateSolidBrush( RGB(255,0,0) ); FillRect( h, &rtPart, hB ); DeleteObject( hB ); break; } } }