1

我创建的任何组合框似乎都停留在 12 个对话框单元的高度。Microsoft 关于对话框中控件的间距和大小的指南规定组合框的高度应为 14 个对话框单元。

我什至尝试在记事本中编辑资源文件并在 Visual Studio 中重新编译而不打开资源编辑器 - 但组合框的大小仍然错误!

有任何想法吗?

4

4 回答 4

2

您为组合框提供的高度指定组合框打开时的大小。编辑控件部分的高度基于字体。(或者如果您是自绘的,则根据您的物品尺寸。)

于 2011-09-27T19:41:12.357 回答
1

就我而言,我已经处理了 WM_WINDOWPOSCHANGING 消息并更改了 WINDOWPOS 结构中的 cy 成员,它可以工作,可能会有所帮助。

于 2012-02-08T00:45:47.400 回答
0

您可以使用 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);
于 2010-04-13T15:12:55.630 回答
0

现在假设您要更改下拉区域的大小(按下按钮时出现的列表)。请记住,组合框过去只是一个编辑框和一个粘在一起的列表。所以我们需要以某种方式改变总宽度/高度。

一种方法是直接在 RC 文件中编辑宽度/高度。

VS 对话框编辑器的惊人之处在于它会默认创建一个几乎为零像素的默认“放置”区域。你根本看不到列表!

在对话框编辑器中,将鼠标光标悬停在下拉按钮上方,直到鼠标光标变为南北向类型。然后单击,将显示实际边界,您可以修改该区域。

例子:

对话框编辑器技巧

于 2017-11-23T20:57:02.510 回答