WC_COMBOBOX nicht definiert?
-
Hey Leute!
Ich habe schon wieder eine Frage, und zwar wie man eine Combobox erstellt. Ich habe das heute das erste mal versucht, und in der MSDN steht ja folgendes (leicht abgewandelt):
hWndComboBox = CreateWindow(WC_COMBOBOX, TEXT(""), CBS_DROPDOWN | CBS_HASSTRINGS | WS_CHILD | WS_OVERLAPPED | WS_VISIBLE, 100, 100, 100, 40, hwndParent, NULL, HINST_THISCOMPONENT, NULL);
Wenn ich das aber so einfüge, dann ist WC_COMBOBOX nicht definiert
Was mache ich falsch?MFG
FERNman
-
Ok, ich war einfach zu dumm um den nötigen Header zu includen...
Nun habe ich aber noch eine Frage, Wie kann ich diese Box nun mit mehrerern Einträgen füllen?
Ich habe das aus der MSDN:
hWndComboBox = CreateWindow(WC_COMBOBOX, TEXT(""), CBS_DROPDOWN | CBS_HASSTRINGS | WS_CHILD | WS_OVERLAPPED | WS_VISIBLE, 100, 100, 100, 40, hWnd, NULL, hInst, NULL);
Und zum füllen:
TCHAR Planets[9][10] = { TEXT("Mercury"), TEXT("Venus"), TEXT("Terra"), TEXT("Mars"), TEXT("Jupiter"), TEXT("Saturn"), TEXT("Uranus"), TEXT("Neptune"), TEXT("Pluto??") }; TCHAR A[16]; int k = 0; memset(&A, 0, sizeof(A)); for (k = 0; k <= 8; k += 1) { wcscpy_s(A, sizeof(A) / sizeof(TCHAR), (TCHAR*)Planets[k]); SendMessage(hWndComboBox, (UINT)CB_ADDSTRING, (WPARAM)0, (LPARAM)A); } SendMessage(hWndComboBox, CB_SETCURSEL, (WPARAM)2, (LPARAM)0);
Nur steht bei mir dann immer nur ein Wort in der Combobox...
MFG
FERNman
-
Lass doch mal die unnötigen Casts und das Kopieren weg.
Ungetestet, sollte aber funktionieren:const TCHAR* Planets[] = { TEXT("Mercury"), TEXT("Venus"), TEXT("Terra"), TEXT("Mars"), TEXT("Jupiter"), TEXT("Saturn"), TEXT("Uranus"), TEXT("Neptune"), TEXT("Pluto??") }; for (int k = 0; k <= sizeof(Planets)/sizeof(TCHAR*); k += 1) { SendMessage(hWndComboBox, CB_ADDSTRING, 0, (LPARAM)Planets[k]); // reinterpret_cast } SendMessage(hWndComboBox, CB_SETCURSEL, 2, 0);
-
Oh, natürlich
for (int k = 0; k < sizeof(Planets)/sizeof(TCHAR*); k += 1)// <, nicht <=
-
Danke für deine Antwort, aber es wird mir immer noch nur eine Auswahlmöglichkeit angezeigt, und zwar Terra...
Falls es wichtig ist, diese ist auch schon von vorherein ausgewählt...
MFG
FERNman
-
Also ich glaube heute will mich C++ ein wenig verarschen...
Ich habe deine Text eingefügt, das ganze ausgeführt -> nicht geklappt.
Dann habe ich aus Frust das Programm (VS) beendet, aber da mir etwas eingefallen ist nochmal geöffnet - und siehe da - es funktioniert!
Herzlichen Danke!
MFG
FERNman
-
So, jetzt habe ich noch eine Frage zur Combobox:
Ich habe mir eine Combobox erstellt, und darin die Wochentage Montag - Freitag eingefügt. Wie kann ich nun in einer Switch - Verzweigung herausfinden, welcher Tag ausgewählt wurde?
MFG
FERNman