【发布时间】:2011-02-06 07:56:28
【问题描述】:
我创建的任何组合框似乎都停留在 12 个对话框单元的高度。 Microsoft 关于对话框中控件的间距和大小的指南规定组合框的高度应为 14 个对话框单元。
我什至尝试在记事本中编辑资源文件并在 Visual Studio 中重新编译而不打开资源编辑器 - 但组合框的大小仍然错误!
有什么想法吗?
【问题讨论】:
我创建的任何组合框似乎都停留在 12 个对话框单元的高度。 Microsoft 关于对话框中控件的间距和大小的指南规定组合框的高度应为 14 个对话框单元。
我什至尝试在记事本中编辑资源文件并在 Visual Studio 中重新编译而不打开资源编辑器 - 但组合框的大小仍然错误!
有什么想法吗?
【问题讨论】:
您为组合框specifies the size of the combo box when it is opened 提供的高度。编辑控件部分的高度基于字体。 (或者如果您是自绘者,则根据您的物品尺寸。)
【讨论】:
就我而言,我已经处理了 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);
【讨论】: