VB-Homepage Tipp 228

Textumbruch in Commandbutton

Wenn Sie mit VB4 und später arbeiten, kennen Sie sicher die Funktionalität, daß der Text in Commandbutton umgebrochen wird, wenn er länger als der Button selber ist. Genau dies macht VB3 nicht, dort läuft der Text über die Seitenränder hinaus und verschwindet im Nirwana.

Zu mindestens bis jetzt, denn mit diesem Tipp ist es Ihnen ab sofort möglich, dies auch unter VB3 zum Einsatz zu bringen.

1. Für ein Beispiel benötigen Sie ein neues VB3-Projekt mit einer Form und zwei Commanbutton (Command1,Command2) für einen Vergleich.

2. Geben Sie beiden Commandbutton in der Caption-Eigenschaft den Text "Dies ist ein sehr langer Text" mit und definieren Sie die Breite der Button so, daß nicht alles an Text zu sehen ist.

3. Nun auf zur Deklaration, unter General/Declarations (Allgemein/Deklarationen) geben Sie folgendes an.

Declare Function GetWindowLong& Lib "User" (ByVal hWnd%, ByVal nIndex%)
Declare Function SetWindowLong& Lib "User" (ByVal hWnd%, ByVal nIndex%, ByVal dwNewLong&)
Const BS_MULTILINE = &H2000&
Const GWL_STYLE = (-16)

4. Als nächstes, und zugleich schon letztes, müssen Sie in der
Form_Load Aktion noch die Anweisung zum Textumbruch für den entsprechenden Button definieren.
Dabei verbleibt der Commandbutton1 im Orginal und Commandbutton2 bekommt die Anweisung.

Dim ButtonStyle As Long
Dim lRet As Long
ButtonStyle = GetWindowLong(Command2.hWnd, GWL_STYLE)
lRet = SetWindowLong(Command2.hWnd, GWL_STYLE, ButtonStyle Or BS_MULTILINE)

Sollten Sie die Funktionalität aus irgendeinem Grund zurücksetzen wollen genügt ein lRet = SetWindowLong(Command2.hwnd, GWL_STYLE, ButtonStyle And Not BS_MULTILINE)

5. Sie können nun mit F5 einen Test fahren.

Tipp-Download

Quelle : Basicworld / http://www.basicworld.com

Zurück zur Übersichtsseite