Rahmen um Form zeichnen

Wolfgang Kluge
wolfgang@vbwelt.de

Viel Spielmöglichkeiten beim Design von Formen hat man ja nicht.
Es gibt Leute (ich zähl mich ab und an auch dazu), die wollen zB einen dicken Rahmen um eine Form gezeichnet haben, so wie in einer MDI-Form,...aber eine MDI-Form wollen die nicht.

Was würde da einfacher sein, als ein API-Aufruf ?
Genau, nichts. Deswegen wirds auch so gemacht ;)

 Deklaration:
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 GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Const GWL_EXSTYLE = (-20)

Private Declare Function SetWindowPos Lib "user32" (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


SetWindowPos wird nur dazu verwendet, um Windows mitzuteilen, daß sich der Rahmen von besagtem Fenster geändert hat, und dies neu zu Zeichnen ist.

' Rahmen um Fenster zeichnen
Dim fx As Long
fx = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
SetWindowLong Me.hwnd, GWL_EXSTYLE, fx Or &H200
SetWindowPos Me.hwnd, 0, 0, 0, 0, 0, &H23