我创建的任何组合框似乎都停留在 12 个对话框单元的高度。Microsoft 关于对话框中控件的间距和大小的指南规定组合框的高度应为 14 个对话框单元。
我什至尝试在记事本中编辑资源文件并在 Visual Studio 中重新编译而不打开资源编辑器 - 但组合框的大小仍然错误!
有任何想法吗?
您为组合框提供的高度指定组合框打开时的大小。编辑控件部分的高度基于字体。(或者如果您是自绘的,则根据您的物品尺寸。)
就我而言,我已经处理了 WM_WINDOWPOSCHANGING 消息并更改了 WINDOWPOS 结构中的 cy 成员,它可以工作,可能会有所帮助。
您可以使用 WTL::CComboBox::GetComboBoxInfo() 获取组合组件 HWND 和大小,例如在 OnInitDialog() 中:
COMBOBOXINFO cbi = {sizeof COMBOBOXINFO};
CComboBox(GetDlgItem(ID_MYCOMBO)).GetComboBoxInfo(&cbi);
CRect rComboEdit = cbi.rcItem;
// adjust rComboEdit to your needs
CEdit(cbi.hwndItem).MoveWindow(rComboEdit);