Rubrik: Controls · Sonstiges | VB-Versionen: VB4, VB5, VB6 | 14.11.00 |
Textausrichtung in CommandButtons Fast überall kann man Schriften so ausrichten, wie mans braucht. Der CommandButton macht da aber eine Ausnahme, so daß man sehr eingeschränkt ist, w... | ||
Autor: Wolfgang Kluge | Bewertung: | Views: 20.170 |
www.vbwelt.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
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 braucht es nur der Funktion SetWindowLong und schon kann man den Text ausrichten wie man will.
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& 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.