ListBox
-
Hi!
Wie kann ich mittels WinAPI auf ListBoxes zugreifen, also Elemente in den Listboxes anzeigen?
Danke im Voraus.
-
Mit der Nachricht LB_ADDSTRING
-
Hier noch ein Link auf die MSDN: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/listboxes/listboxreference/listboxmessages/lb_addstring.asp
Ausschauen muss das ganz dann so:
SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM) TEXT("Mein String :)"));cya
-
Danke, das hat mir weiter geholfen.
-
Wie kann ich die Strings in der Listbox alphabethisch ordnen?
-
Hallo,
du must der ListBox den Style "LBS_SORT" setzen.
(Findet man aber leicht in der MSDN....)MfG
Anakin
-
Wie kann ich den Style setzen? Ich hab ja nirgends ein ListBox-Element definiert. Ich lads ja nur über dir Ressourcen-ID.
-
Falls du es dir mit Visual Studio zusammengeklickt hast, wird es wohl bei den Eigenschaften dafür ein Kontrollkästchen geben
-
Hi,
schau dir mal folgende Links an http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/listboxes/listboxes.asp http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/createwindowex.asp
über CreateWIndowEx kannst du deine ListBox erstellen und den Stayle "LBS_SORT" setzen.
MfG
Anakin
[ Dieser Beitrag wurde am 03.03.2003 um 13:24 Uhr von Anakin Skywalker editiert. ]
[ Dieser Beitrag wurde am 03.03.2003 um 13:25 Uhr von Anakin Skywalker editiert. ]
[ Dieser Beitrag wurde am 03.03.2003 um 17:07 Uhr von Anakin Skywalker editiert. ]
-
Ich hab die ListBox in einem Dialog, der über das Menü aufgerufen wird.
Die ListBox erstelle ich mit dem Ressourcen-Editor.
Wo kann ich da den Style setzen?PS: Ich hab keine CreateWindowEx-Funktion für den Dialog erstellt. Ich bezieh mich auf den Dialog (und die Listbox) nur mit der Ressourcen-ID.
[ Dieser Beitrag wurde am 03.03.2003 um 18:36 Uhr von Gary editiert. ]
-
Hast du mal nachgeschaut, ob es dafür im Ressourcen-Editor kein Kontrollkästchen gibt?!
Ansonsten SetWindowLong bzw. SetWindowLongPtr mit GWL_STYLE und der neuen Stylekombination aufrufen! Ala King sieht das dann so aus:LONG_PTR lStyle; lStyle = GetWindowLongPtr(hWnd, GWL_STYLE); lStyle &= LBS_SORT; SetWindowLongPtr(hWnd, GWL_STYLE, lStyle);
Ist nicht getestet, sollte aber so funktionieren
Irgendwie mag er heut meine URLs net
[ Dieser Beitrag wurde am 03.03.2003 um 19:30 Uhr von flenders editiert. ]
-
Original erstellt von flenders:
**sollte aber so funktionieren
**Das bezweifle ich.
Versuch es mal so, ist auch kürzer:
SetWindowLongPtr(hWnd, GWL_STYLE, LBS_SORT | GetWindowLongPtr(hWnd, GWL_STYLE));
BTW: Im Res-Editor doppelt auf die Listbox clicken, dann ober auf Formate und ein Häkchen vor Sortieren machen.
-
Uops, sorry! Jetzt hab ich gedacht, ich schaff es das Beispiel von King anzupassen und schon war's nichts
Aber mit der anderen Möglichkeit lag ich richtig
-
Schieben wir die Schuld mal auf King (:p), denn hätte er das Flag statt mit diesem
LONG_PTR lExStyle; lExStyle = GetWindowLongPtr(hWnd, GWL_EXSTYLE); lExStyle &= ~WS_EX_TOOLWINDOW; SetWindowLongPtr(hWnd, GWL_EXSTYLE, lExStyle);
Code, mit diesem gelöscht:
SetWindowLongPtr(hWnd, GWL_EXSTYLE, GetWindowLongPtr(hWnd, GWL_EXSTYLE)^WS_EX_TOOLWINDOW);
wäre es nicht nur viel einfacher zu verstehen, sonern auch viel einfacher anzupassen gewesen
Dank dir und King hab ich allerdings gerade gelernt, was dieser Operator macht: ~
tja in C gibts halt alles
-
Code, mit diesem gelöscht:
SetWindowLongPtr(hWnd, GWL_EXSTYLE, GetWindowLongPtr(hWnd, GWL_EXSTYLE)^WS_EX_TOOLWINDOW);
Das löscht nicht, das dreht um. Ich habe das damals aber extra in mehrere Zeilen gelegt. Ichz dachte, daß das einfacher zu lesen ist. Hab ich mich halt getäuscht.
-
Nagut, natürlich macht es aus einer 0 auch eine 1, aber wenn es eine 1 ist, wird sie gelöscht und wenn es schon eine 0 ist, braucht man das Flag ja nicht mehr zu löschen
-
Das ist natürlich richtig. Und wenn das Flag versehentlich vorher schon gelöscht war, kann man endlich mal wieder seine Zeit mit Fehlersuche verbringen.