Kann Listbox in einem Dialog nicht füllen
-
Hallo,
ich habe einen Dialog mit einer Listbox. Diese Listbox will ich vor der Darstellung mit Inhalt füllen. Dafür fange ich
WM_INITDIALOG
ab und sende
SendMessage(GetDlgItem(hDlg,IDL_STIMMUNGSLISTE),LB_ADDSTRING,0,(LPARAM)(LPCTSTR)tempql->name);
als Rückgabewert bekomme ich LB_OKAY, tempql->name ist auch ok (laut Debugger) und trotzdem wird der Text nicht dargestellt. Auch die ID ist richtig. NO_REDRAW ist nicht gesetzt.

Wenn ich in WM_INITDIALOG eine neue Listbox erstelle (CreateWindow...)und ihr die LB_ADDSTRING-Message sende, klappts. Nicht aber mit der im Ressourceneditor erstellten.

Kann es sein, dass ich zu früh versuche, die Box zu füllen? Wann macht man das sonst?
Gruß,
Sebastian
-
-
Danke für den Link.....
Geht leider an der Frage vorbei. Ich will definitv keinen Button, der mir die Listbox füllt, ich will es automatisch tun, wenn der Dialog erstellt wird. Die Frage ist nur: welche Message muss ich abfangen, wenn die Dialogbox erstellt wird.
Und SendDlgItemMessage liefert an dieser Stelle (WM_INITDIALOG) ebenso OK zurück, tut aber nix.
-
hat deine listbox die du mit dem res-editor erstellst die gleichen styles wie mit bei createwindow ?
zeig mal dein rc script
-
Fenster = WM_CREATE.
Dialoge = WM_INITDIALOG.In Deinem Fall WM_INITDIALOG. Die Antwort geht nicht vorbei, wenn Du den Code so nimmst, wie er bei einem Buttonklick steht und den bei INITDIALOG einfügst, muss es gehen, ansonsten hast Du etwas komisches vermurgst, ein Handle stimmt nicht oder sowas. Ganz klar.
-
@miller_m:
Styles sind identisch. Werde ich aber nochmals überprüfen.@ChrisK:
Code ist (sinngemäß) gleich.Vielleicht ist wirklich das Handle. Werde mich auch da hinterklemmen. Inzwischen hab ich ziemlich rumgemurgst, sitze seit 20 Stunden an diesem #*&%§ Problem. Ich sehs einfach nicht.
Aber ist ne coole Seite. Kannte ich noch gar nicht.
@all:
Muss jetzt los, leider. Arbeite den Code nochmal auf und poste ihn hier, wenn ich nix finde...Danke einstweilen.
-
Hmmm... Wenn ich so überlege, machmal gibts so dumme Fehler, die sieht man einfach nicht... Und man hockt paar Stunden sinnlos dran

-
Probiere doch auch mal
LB_INSERTSTRING
wParam -1 und lPatam deinen Text.
Ist hDlg wirklich das Dlg, wo die List drauf ist? Ist die ID des Controls wirklich richtig?
-
Hallo zusammen,
das Problem hat sich gelöst. Die Idee sich mal manuell das Ressourcenscript genauer anzuschauen war der Auslöser. Hatte eine ID doppelt vergeben
Habe dadurch mit GetDlgItem zwar ein gültiges Handle bekommen, aber zu einem Button. Und der hat LB_ADDSTRING natürlich nicht verarbeiten können. Weiß der Teufel, warum ich dem Button die selbe ID gegeben habe. Bin warscheinlich in der Zeile verrutscht. Ich Idiot.Danke fürs Brainstorming.
Sebastian
-
