CComboBox中的下拉高度错误(常见控件6.0)?

时间:2009-08-25 08:31:56

标签: c++ mfc winapi

我已经制作了一个简单的MFC应用程序(Visual Studio 2008,基于对话框)并使用资源编辑器添加了CComboBox。我使用资源编辑器指定下拉高度。然后我添加了一些代码来向组合框添加100个文本。如果我运行这个简单的应用程序,则忽略下拉高度。如果我禁用Microsoft.Windows.Common-Controls 6.0.0.0样式(禁用将其添加到清单文件的pragma),那么一切正常。

有没有人注意到这种行为(并且知道解决方案)?我搜索过网络和msdn,但到目前为止没有运气。

2 个答案:

答案 0 :(得分:2)

我找到的唯一解决方案(对于Microsoft MFC新闻组中的某人)是使用CBS_NOINTEGRALHEIGHT标志,该标志指出组合框必须查看用户指定的确切大小,而不是自动调整它(原因是是一个补丁,该标志通常用于禁用调整dropheight的功能,以便不渲染部分项目。

答案 1 :(得分:0)

不同之处在于“新”Common-Controls-6.0风格的组合框,或“原始”旧式组合框(6.0之前版)。

我猜微软最终“修复”了ComboBox控件,因此它会根据项目数量和可用的屏幕空间动态更改下拉列表的高度,这比具有固定高度(恕我直言)更好。
不幸的是,我没有任何消息来源,只是疯狂猜测:)