Schriften in CommandButtons
 Info  
Von : Wolfgang Kluge
 Zusatz  
Beispielprojekt (2,50kB)
Printfreundliche Ansicht
Fast überall kann man Schriften so ausrichten, wie mans braucht. Der CommandButton macht da aber eine Ausnahme, so daß man sehr eingeschränkt ist, was das Design angeht.

Um diesen Umstand zu Umgehen bedarf es nur der Funktion SetWindowLong und schon kann man den Text ausrichten wie man will.

 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_STYLE = (-16)

Private Const BS_TOP = &H400
Private Const BS_VCENTER = &HC00
Private Const BS_BOTTOM = &H800
Private Const BS_LEFT = &H100
Private Const BS_CENTER = &H300
Private Const BS_RIGTH = &H200


Es werden die aktuellen Parameter ausgelesen(GetWindowLong) und zusammen mit dem neuen Parameter zurückgeschrieben. Natürlich darf man mischen, es macht jedoch wenig Sinn gleichzeitig den Text Links und Rechts auszurichten.

Nachdem neue Parameter für den CommandButton gesetzt wurden muß dieser neu gezeichnet werden.
' Text in CommandButton ausrichten
Dim n As Long
n = GetWindowLong(Command1.hwnd, GWL_STYLE)
n = n Or BS_TOP
SetWindowLong Command1.hwnd, GWL_STYLE, n
Command1.Refresh


Das ganze ist genauso auf OptionButtons, CheckBoxen, Frames(teilweise) und Labels anwendbar.