ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
1265
1265
EMPFEHLEN
-
Hallo Leute!
Ich habe eine ListBox, in der ich Ausgaben von Programmen anzeigen will. Diese Ausgaben füge ich zeilenweise mit AddString(...) zur ListBox hinzu. Allerdings sind manche Zeilen länger als die ListBox. Obwohl ich im ResourceEditor bei den Listenfeld-Eigenschaften 'Horiz. Bildlauf' aktiviert habe, erscheint in diesem Fall trotzdem kein Scrollbalken. Wenn ich das Häkchen bei 'kein Bildlauf deaktivieren' setze, ist der Scrollbalken zwar da, aber immer inaktiv. Scheinbar erkennt die ListBox nicht, wenn die angezeigte Zeile länger ist. Ist das ein Bug im VS oder habe ich was falsch eingestellt und was muß ich tun, damit ich horizontal scrollen kann? Beim vertikalen Scrollen klappt alles.
Grüße, jokey2
-
Das ist ein fieser Trick: Die ListBox kann nur horizontal scrollen, wenn sie weiss, wie breit ein Item ist. Das kannst du mit SetColumnWidth (MFC) oder mit LB_SETCOLUMNWIDTH (Win32) machen.
-
Na, das ist ja wirklich fies! Heißt das, ich muß die Breite immer auf die Länge der längsten Zeile setzen?
-
Hab's ausprobiert, klappt aber leider nicht. SetColumnWidth erfordert eine mehrspaltige ListBox, ich will aber nur eine haben. Ich habe sie mal zum Testen auf mehrspaltig gesetzt und eine Spaltenbreite gesetzt, dann hatte ich einen horizontalen Scrollbalken, der allerdings seitenweise vertikal scrollte und der vertikale Scrollbalken war verschwunden. Klingt komisch, ist aber so.
Ich will doch nur zeilenweise Text ausgeben, und zwar so, daß der Anwender auch den kompletten Text lesen kann. Das muß doch möglich sein, oder muß ich da auf CListCtrl umsteigen?
-
Argh, verflixt, ich war mit den Gedanken woanders. Meine Lösung ist für ein anderes Problem mit der Listbox und dem horizontalen Scrollbalken.
Aber bei http://www.codeguru.com/Cpp/controls...cle.php/c4759/ gibt es eine von CListBox abgeleitete Klasse, die den horizontalen Scrollbalken richtig setzt. Die Original-ListBox ist an der Stelle scheinbar wirklich zu doof.
-
Danke für den Tip, werde ich dann mal ausprobieren!
Grüße,
jokey2
-
Hallo zusammen! Ich habe das selbe Problem gehabt! Habe es ohne die Klassen von Codeguru gelöst! Die List Box ist nicht zu doof dafür!
Man muss ersten diese Eigenschaften bei dem Listenfeld einstellen:
Rand, Sortieren, Benachrichten, Horizontaler und Vertikaler Bildlauf
Im Code muss man nun noch folgendes machen:
Es muss sich einfach die maximale Länge des Stringes gemerkt werden der in die Listbox geschrieben wird.
Wenn alle einträge gemacht wurden einfach folgende Nachricht senden:
Code :1
SendMessage( HandleOf( hwnd, DID_LISTE ), LB_SETHORIZONTALEXTENT, (UINT)(iMaxLength*textBreite*1.5), 0 );
Ähnliche Themen
-
Tooltip scrollt nicht mit im IE
Von alfsch7 im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 05.09.08, 14:41 -
Listbox horizontal scrollen
Von DrMueller im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 01.10.07, 16:02 -
JScrollPane scrollt nur Horizontal ...
Von Xondio im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 26.09.07, 15:53 -
JScrollPane scrollt nicht
Von Moltar im Forum JavaAntworten: 0Letzter Beitrag: 15.05.07, 10:17 -
In ListBox horizontal scollen
Von happyfrank im Forum Borland CBuilder und VCLAntworten: 1Letzter Beitrag: 07.03.05, 01:48





Zitieren
Login






