Как я могу изменить высоту COMBOBOX
элемента управления, созданного с определением ресурса во время выполнения, чтобы я мог вставлять новые строки в выпадающий список? Код вставки строки работает, но только если я установил фиксированную высоту для комбинированного списка в определении ресурса (например, 28 единиц). Но это не удобно, потому что число строк является динамическим.
Я знаю, что могу создавать диалог во время выполнения, но тогда я не могу использовать диалоговые блоки, а ресурсы гораздо эффективнее ...
Вот упрощенные версии моего кода.
Файл ресурса:
IDD_SETTINGS DIALOG 0, 0, 100, 100
BEGIN
COMBOBOX IDC_COMBO, 0, 0, 100, 14, CBS_DROPDOWNLIST
END
Оконная процедура для главного окна и диалогового окна:
BOOL CALLBACK WndProcSettings(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
switch (message) {
case WM_INITDIALOG:
//...
break;
default:
return FALSE;
}
return TRUE;
}
LRESULT CALLBACK WndProcMain(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
switch (message) {
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDC_SETTINGS:
DialogBox(hInstance, MAKEINTRESOURCE(IDD_SETTINGS), hWnd, WndProcSettings);
break;
}
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return(0L);
}