BlackBoard (http://www.black-board.net/index.php)
- Design, Programmierung & Entwicklung (http://www.black-board.net/board.php?boardid=55)
-- Programmieren (http://www.black-board.net/board.php?boardid=4)
--- VC++: Dropdown Feld bleibt leer (http://www.black-board.net/thread.php?threadid=10976)


Geschrieben von Compuholic am 12.03.2003 um 17:20:

  VC++: Dropdown Feld bleibt leer

Hi,

ich hab da ein kleines Problem, das ich nicht auf die Reihe bekomme. Ich möchte in Visual C++ über den Resource Editor ein Dialogfeld erstellen, das ein Dropdown Feld enthält. Das wäre ja kein Problem, nur wenn ich unter "Eigenschaften" die Listenelemente eingebe, die es zur Auswahl stellen soll funktioniert etwas nicht.

Wenn ich das Dialogfeld in meinem Programm anzeigen lasse, sind die Listboxen immer leer (soll heißen, es gibt keine Punkte zur Auswahl). Hat jemand eine Ahnung, warum und vor allem wie man das Problem lösen kann.



Geschrieben von CDW am 12.03.2003 um 18:08:

 

sorry,ich kann nur die Lösung über WinAPI vorschlagen:
SendDlgItemMessage,hWnd,ID_DROPDOWN_BOX,CB_ADDSTRING,0,addr Stringbla...
die vollständige WinAPI:

CB_ADDSTRING
wParam = 0; // not used; must be zero
lParam = (LPARAM) (LPCTSTR) lpsz; // address of string to add

umd die Auswahl abzufragen:
SendDlgItemMessage,hWnd,ID_DROPDOWN_BOX,CB_GETCURSEL,0,0
liefert eine Nummer (Itemindex

um den String zu erfahren,der gewählt wurde:

CB_GETLBTEXT
wParam = (WPARAM) index; // item index
lParam = (LPARAM) (LPCSTR) lpszBuffer; // address of buffer

senden.
Ich habe mich auch anfangs gewundert, warum die schönen Dialoge leer bleiben, aber anscheinend ist es eine Art Deko, zumindest bleibt die Ressourcendatei leer...



Geschrieben von phlox81 am 12.03.2003 um 20:11:

 

@CDW mit MFC geht das was einfacher Augenzwinkern

Membervariable vom Typ CComboBox erstellen, und
CComboBox::AddString(LPCTSTR str) aufrufen.

Devil



Geschrieben von Compuholic am 12.03.2003 um 20:50:

 

Die WinAPI und MFC-Lösung sind mir auch geläufig. Ich hatte mich nur gewundert, warum das Feld bei der Dateneingabe leer bleibt und dachte, ich mache irgendetwas falsch.

btw. MFC sucks (naja zumindest bei kleineren Projekten) smile



Geschrieben von CDW am 12.03.2003 um 22:09:

 

das größere Problem ist bei MFC, dass die Standardversionen von VC++ keine statische Bindung der MFC in die EXE vorsieht - man muss voraussetzten,dass derjenige dann MFC hat... außerdem:
@devil81:
SendDlgItemMessage,hWnd,ID_DROPDOWN_BOX,CB_ADDSTRING,0,lpctstr string
gegen:
CComboBox::AddString(LPCTSTR str)
man schreibt die erste Zeile und den Rest macht man per Copy&Paste Augenzwinkern


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH