Ma kreira on uredno kombo i postavi i uzme trenutni aktivni element u neki int, kada pozovem sve to u WM_CREATE
al' kako da postavim i uzmem trenutnu vrijednost van Create message-a, jer ona samo sto bi se reklo inicijalizuje sve, dok u daljem radu se koriste ostale komande.
Evo koda:
Code:
int getCurent = 0;
case WM_CREATE:
SendMessage(CB, CB_SETCURSEL, 3, 0);
getCurent = SendMessage(CB, CB_GETCURSEL, 0, 0);
Evo ovdje dakle u WM_CREATE on uredno mi postavi 3 element kao aktivan i u getCurent integer stavi 3.
Ali dalje kako da radim sa njima, tj. kako dalje u programu da uzimam i postavljam trenutni element.
Evo kako sam pokusao:
Code:
case WM_COMMAND:
switch LOWORD(wParam)
{
case IDCOMBOBOX:
switch HIWORD(wParam)
{
case CBN_SELENDOK:
getCurent = SendMessage(CB, CB_GETCURSEL, NULL, NULL) ;
wsprintf(b, "Index: %i", getCurent);
MessageBox(hwnd, b, "info", MB_OK);
return 0;
}
return 0;
}
Al' u getCurent uvijek dobijem 0, pa mi nije jasno kako u WM_CREATE dobijem tacnu vrijednost, a ovdje nikako da to dobijem, vec uvijek 0, dakle kako se ovo odradjuje, znaci najednostavniji kod mi treba kada sa misem odaberem neki element sa combo liste, da na neki integer prenesem njegovu vrijednost, kako bi dalje mogao u programu da koristim taj izabrani element.
A evo kreiranja comboboxa
Code:
hComboBox = CreateWindowEx(0,"COMBOBOX", "",
WS_CHILD | WS_VISIBLE | WS_VSCROLL | CBS_DROPDOWNLIST ,
0, 200, 100, 100, hwnd, (HMENU) IDCOMBOBOX, ((LPCREATESTRUCT)lParam)->hInstance, NULL);