如何在运行时更改使用资源定义创建的COMBOBOX
控件的高度,以便我可以在组合框中插入新字符串?字符串插入代码正在工作,但前提是我在资源定义中为组合框设置了固定的高度(例如28个单位)。但这不方便,因为字符串的数量是动态的。更改COMBOBOX的高度
我知道我可以在运行时创建的对话,但后来我不能使用对话框单位,和资源更加有效......
这里是我的代码精简版本。
资源文件:主窗口和对话框
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);
}
不清楚你的意思。 “如何更改COMBOBOX控件的高度”和“在组合框中插入新字符串”是如何相关的? COMBOBOX窗口的固定高度仅取决于系统字体大小。 – 2011-05-07 20:50:39
如果高度太小,则无法看到新插入的字符串。 COMBOBOX资源的高度参数包括下拉区域的高度。 – Midas 2011-05-07 20:58:22