Sub MakeIt3D (Ctrl As Control, nBevel%, nSpace%, bInset%)
'Makes the passed control appear 3D. 'Looks best when background of form or container is light gray. 'Parameters: ' Ctrl = apply 3D look to control name ' nBevel% = bevel width (pixels) ' nSpace% = surround distance from control (pixels) ' bInset% = True is 3D inset border ' False is 3D outset border PixX% = Screen.TwipsPerPixelX PixY% = Screen.TwipsPerPixelY CTop% = Ctrl.Top - PixX% CLft% = Ctrl.Left - PixY% CRgt% = Ctrl.Left + Ctrl.Width CBtm% = Ctrl.Top + Ctrl.Height ' Color used below: ' dark gray = &H808080 ' white = &HFFFFFF If bInset% Then 'recessed border For i% = nSpace% To (nBevel% + nSpace% - 1) AddX% = i% * PixX% AddY% = i% * PixY% Ctrl.Parent.Line (CLft% - AddX%, CTop% - AddY%)- _ (CRgt% + AddX%, CTop% - AddY%), &H808080 Ctrl.Parent.Line (CLft% - AddX%, CTop% - AddY%)- _ (CLft% - AddX%, CBtm% + AddY%), &H808080 Ctrl.Parent.Line (CLft% - AddX%, CBtm% + AddY%)- _ (CRgt% + AddX% + PixX%, CBtm% + AddY%), &HFFFFFF Ctrl.Parent.Line (CRgt% + AddX%, CTop% - AddY%)- _ (CRgt% + AddX%, CBtm% + AddY%), &HFFFFFF Next Else 'raised border For i% = nSpace% To (nBevel% + nSpace% - 1) AddX% = i% * PixX% AddY% = i% * PixY% Ctrl.Parent.Line (CRgt% + AddX%, CBtm% + AddY%)- _ (CRgt% + AddX%, CTop% - AddY%), &H808080 Ctrl.Parent.Line (CRgt% + AddX%, CBtm% + AddY%)- _ (CLft% - AddX%, CBtm% + AddY%), &H808080 Ctrl.Parent.Line (CRgt% + AddX%, CTop% - AddY%)- _ (CLft% - AddX% - PixX%, CTop% - AddY%), &HFFFFFF Ctrl.Parent.Line (CLft% - AddX%, CBtm% + AddY%)- _ (CLft% - AddX%, CTop% - AddY%), &HFFFFFF Next End If End Sub 'Example: 'In the form's Paint event: MakeIt3D Text1, 1, 0, True |