I'm trying to make a combo box in a dialog window. I create a dialog in VC++ editor, empty combo box in it and then add data to it with SendMessage(hwndcombo, CB_ADDSTRING, o, "Data1") during WM_INITDIALOG. Like this:
Code:
LRESULT res;
res = SendMessage (hwndcombo, CB_ADDSTRING, 0, (LPARAM) TEXT("Data1")) ;
sprintf(buffer, "SendMessage: %ld\n", res);
writelog(buffer);
res = SendMessage (hwndcombo, CB_ADDSTRING, 1, (LPARAM) TEXT("Data2")) ;
sprintf(buffer, "SendMessage: %ld\n", res);
writelog(buffer);
res = SendMessage (hwndcombo, CB_ADDSTRING, 2, (LPARAM) TEXT("Data3")) ;
sprintf(buffer, "SendMessage: %ld\n", res);
writelog(buffer);
res = SendMessage (hwndcombo, CB_ADDSTRING, 3, (LPARAM) TEXT("Data4")) ;
sprintf(buffer, "SendMessage: %ld\n", res);
writelog(buffer);
res = SendMessage (hwndcombo, CB_ADDSTRING, 4, (LPARAM) TEXT("Data5")) ;
sprintf(buffer, "SendMessage: %ld\n", res);
writelog(buffer);
res = SendMessage (hwndcombo, CB_ADDSTRING, 4, (LPARAM) TEXT("Data6")) ;
sprintf(buffer, "SendMessage: %ld\n", res);
writelog(buffer);
res = SendMessage (hwndcombo, CB_ADDSTRING, 4, (LPARAM) TEXT("Data7")) ;
sprintf(buffer, "SendMessage: %ld\n", res);
writelog(buffer);
sprintf(buffer, "NoItems: %ld\n", SendMessage (hwndcombo, CB_GETCOUNT, 0, 0));
writelog(buffer);
Of course, first I get a handle to it. But, return codes from SendMessage are strange. First three SenMessage calls return 0, then next two return 1, next two return 2, and so on. When I check number of strings in combo box with CB_GETCOUNT it returns 7 which is OK. But when I try to read any of entries with
strlength = SendMesssage(hwndcombo, LB_GETTEXT, i, (LPARAM) buffer);
strlength equals zero and nothing is written to buffer. Also, when I run the program, combo box is empty.