VisualBasic Text in einem CommandButton linksbündig und kürzen

Krik

Fleet Admiral Pro
Registriert
Juni 2005
Beiträge
16.987
Moin


Ich verwende VB6.

Ich habe einen CommandButton, der teilweise mit reichlich viel Text gefüllt wird. Standardmäßig ist der Text mittig ausgerichtet und WordWrap eingeschaltet.

Ich möchte den Text jetzt gerne linksbündig haben und den WordWrap ausschalten. Desweiteren soll bei zu langem Text, der Text beschnitten werden und "..." eingefügt werden.

Zur Zeit habe ich das.
Code:
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

'...

With Belegungsfenster.BuchungsButton(i)
[INDENT].Caption = ""
If rs.Fields("Firma") <> "" Then .Caption = rs.Fields("Firma") & " "
.Caption = .Caption & rs.Fields("Nachname") & " (" & rs.Fields("Personen") & ")"
SetWindowLong .hwnd, GWL_STYLE, BS_LEFT Or GetWindowLong(.hwnd, GWL_STYLE)
.Refresh[/INDENT]
End With

Eigentlich sollte SetWindowLong den Text linksbündig machen, aber irgendwie funktioniert das nicht. Er ist weiter zentriert.
Und wie ich den WordWrap abgeschaltet bekomme, ist mir absolut unklar. Google hat da gar nichts hergegeben. Zum Thema Text automatisch kürzen auch nicht (das sieht man aber überall, das muss doch automatisch gehen können). :(

Wüßte da jemand was?
Gruß, Laurin


Edit: Das Problem ist leider immer noch aktuell. Hat keiner eine Idee? :(
 
Zuletzt bearbeitet: (Typo)
Also linksbündig müsste wohl gehen, schau ich gleich mal nach.
Aber ich befürchte, dass du die "..."-Geschichte selbstständig implementieren musst.

In .Net gibt es eine Funktion mit der man die Länge und Höhe eines Strings mit einer Font in px bekommt. Ich denke sowas gibt es auch in VB6.

EDIT: Das soll wohl "TextWidth" heißen oder so.

http://social.msdn.microsoft.com/forums/en-US/vblanguage/thread/8b301d31-5b2c-4c6d-b78f-c0867dd0084e
http://www.daniweb.com/forums/thread31930.html

Irgendwas in der Richtung.

Zu der Linksbündigkeit:
http://www.freevbcode.com/ShowCode.asp?ID=330
 
Zuletzt bearbeitet:
Höhe und Länge des Strings, wie du es beschreibst, läßt sich, glaub' ich, herausfinden. Es gibt da jedenfalls eine TextWidth()-Funktion, die ich wohl dafür nutzen kann.
 
Hast auf diese Art hinbekommen. Hätte ich auch selbst drauf kommen können. :rolleyes:
Manchmal sieht man den Wald vorlauter Bäumen nicht.

Trotzdem danke für eure Hilfe.


@IceMatrix
Die Firma hat es mir so vorgegeben. Ich habe mich auch schon beschwerrt, aber das hat nichts genützt.
 
Zurück
Oben