VB-Homepage Tipp 027

Objekte mit 3D-Rahmen

Wieder ein Tipp der in Richtung grafisches Aufpeppen von Projekten zielt. Mit wenigen Anweisungen ist es möglich, Command- & Optionbutton ,Picture- & Checkboxen und alle Objekte die die Eigenschaft "hWnd" haben, mit einem 3D-Rahmen auszustatten. Was dabei gefällt muß selbst ausprobiert werden. Ein Beispiel gefällig, bitte ...

Öffnen Sie ein neues Projekt und tragen in den
General/Declarations bzw. Allgemein/Deklarationen
'Abschnitt der Form folgendes ein.

######################################################
16Bit
Declare Function GetWindowLong Lib "User" (ByVal hWnd As Integer, ByVal nIndex As Integer) As Long
Declare Function SetWindowLong Lib "User" (ByVal hWnd As Integer, ByVal nIndex As Integer, ByVal dwNewLong As Long) As Long
Declare Function SetWindowPos Lib "User" (ByVal hWnd%, ByVal hWndInsertAfter%, ByVal X%, ByVal Y%, ByVal cX%, ByVal cY%, ByVal wFlags%) As Integer

Const GWL_STYLE = (-16)
Const WS_THICKFRAME = &H40000
Const WS_CHILD = &H40000000

Const SWP_DRAWFRAME = &H20
Const SWP_NOMOVE = &H2
Const SWP_NOSIZE = &H1
Const SWP_NOZORDER = &H4

######################################################
32Bit
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long


Const GWL_STYLE = (-16)
Const WS_THICKFRAME = &H40000
Const WS_CHILD = &H40000000
Const SWP_FRAMECHANGED = &H20
Const SWP_DRAWFRAME = SWP_FRAMECHANGED
Const SWP_NOMOVE = &H2
Const SWP_NOSIZE = &H1
Const SWP_NOZORDER = &H4
######################################################


Nun sind die Grundlagen geschaffen, als nächstes, müssen Sie nur noch für alle Objekte die einen solchen Rahmen erhalten sollen, im Abschnitt
Form/Load 'folgende Anweisungen eintragen.

Style& = GetWindowLong(IhrObjekt.hWnd, GWL_STYLE)
Style& = Style& Or WS_THICKFRAME
Style& = SetWindowLong(IhrObjekt.hWnd, GWL_STYLE, Style&)
ret% = SetWindowPos(IhrObjekt.hWnd, Form1.hWnd, 0, 0, 0, 0, SWP_NOZORDER Or SWP_NOSIZE Or SWP_NOMOVE Or SWP_DRAWFRAME)

Für IhrObjekt tragen Sie Command1 oder Option1 oder oder oder... ein.


Tipp-Download

Quelle :

Zurück zur Übersichtsseite