Диалог создан через ресурсы. Пытаюсь инициализировать ComboBox строками из STRINGTABLE. Строки добавляются (команда CB_GETCOUNT возвращает правильный результат), но не отображаются. Вот код:
…
hwndCtrl = GetDlgItem(hDlg, IDC_TYPE);
for (i = 0; i <= 5; i++)
{
LoadString(hInstance, i, szMessage, 255);
SendMessage(hwndCtrl, CB_ADDSTRING, 0, (LPARAM) szMessage);
}
i = SendMessage(hwndCtrl, CB_GETCOUNT, 0, 0);
…
---
Если в диалоговом окне «вручную» создать тот же ComboBox, то всё работает нормально. Вот код, который работает:
…
hwndCtrl = CreateWindow("ComboBox", NULL,
WS_CHILD | WS_VISIBLE | CBS_DROPDOWN | CBS_SORT |
WS_VSCROLL | WS_TABSTOP, 30, 30, 200, 200,
hDlg, NULL, hInstance, NULL);
for (i = 0; i <= 5; i++)
{
LoadString(hInstance, i, szMessage, 255);
SendMessage(hwndCtrl, CB_ADDSTRING, 0, (LPARAM) szMessage);
}
i = SendMessage(hwndCtrl, CB_GETCOUNT, 0, 0);
…
---
Стили ComboBox’а одинаковы в обоих примерах.
Не получается инициализировать ComboBox и через INITDLG (заполнение строк в редакторе ресурсов) - они также не отображаются.
|