Я использую Visual C ++ 2008 для создания C -программы с использованием диалогового окна WIN32 API с использованием широких символов. Пока все элементы управления работают, но теперь я добавил поле со списком, перетащив его из панели инструментов в диалоговое окно ресурсов. Я выполнил необходимое кодирование (см. Ниже), но когда я щелкаю поле со списком, список, кажется, не выпадает или становится пустым, когда я нажимаю на поле со списком. Однако последний элемент («ПУНКТ 2») отображается в поле со списком. Я помещаю код в WM_INITDIALOG вместо WM_CREATE, потому что мое приложение состоит только из одного диалогового окна. Вот часть моего кода:
LRESULT CALLBACK BasicScanProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
HWND hWndComboBox;
switch(uMsg)
{
case WM_INITDIALOG:
hWndComboBox = GetDlgItem(hwnd,IDC_COMBO1); //gets handle
SendMessage(hWndComboBox, CB_ADDSTRING, 0, TEXT("ITEM 1")); //adds items
SendMessage(hWndComboBox, CB_ADDSTRING, 0, TEXT("ITEM 2"));
SendMessage (hWndComboBox, CB_SETCURSEL, (WPARAM) 1, (LPARAM) 0); //display first item
Я пробовал ниже с теми же результатами, что и выше:
SendMessage (hWndComboBox, (UINT) CB_ADDSTRING, (WPARAM) 0, (LPARAM) "ITEM 1");
SendMessage (hWndComboBox, (UINT) CB_ADDSTRING, (WPARAM) 0, (LPARAM) "ITEM 2");
Как отобразить два элемента (ПУНКТ 1 и ПУНКТ 2 ) в раскрывающемся списке моего поля со списком, когда я нажимаю на элемент управления?