如何影响COMBOBOX窗口类的定义
How to affect definition of COMBOBOX window class
我有一个CComboBox
的子类,它在两个不同的上下文-两者都在本机C++中。在工作(测试)上下文中,创建了顶级应用程序使用VS2008。在非工作情况下,应用程序要复杂得多并且可能最初是由早期的VS版本创建的。
在失败的情况下,控件不会显示下拉框,而是响应上/下箭头键控制。同样在失败的情况下,它总是返回零当使用GetMinVisible
进行查询时,并且总是从SetMinVisibleItems
。
问题似乎源于COMBOBOX
窗口的定义班在这两种情况下,我都转储了从::GetClassInfoEx
返回的数据。除了wndProc
的地址之外,还有两个区别。第一,工作案例设置了样式CS_GLOBALCLASS
,而失败案例没有。此外工作情况指定4字节的额外窗口存储(cbWndExtra
),而失败情况指定8个字节。
所以我的问题是:1)什么配置属性可能会影响CCD_ 9窗口类?,以及2)如果我创建自己的窗口类,我如何确定要使用的正确wndProc?
编辑:下拉框的行为会随着常规属性选项卡中character set
属性的指定而更改。如果character set
是unicode
,它会正常工作,而如果是not set
,它会失败。组合框子类在ActiveX控件中,但应用程序级别的设置似乎会影响窗口类,这最终会扰乱ActiveX控件中的组合框。有趣的是,在应用程序的其他地方还有其他组合框,尽管是在对话框中,但它们的行为似乎很好。
SetMinVisibleItems使用CB_SETMINVISIBLE,并且它需要comctl32 v6,这表明这是一个视觉样式问题。
旧的通用控件版本的组合框实际上使用控件高度作为下拉列表的大小,因此如果您进行调整,您可能可以在不添加清单的情况下修复它。
- 如何为使用创建窗口创建的窗口创建自定义背景颜色
- Qt - 为什么我无法在主窗口中为我的自定义按钮触发 mousePressEvent
- 如何在 QScriptEngine 中定义“窗口”对象
- 隐藏自定义应用程序窗口,但应在任务栏上显示应用程序图标(不是作为托盘图标)
- 使用64位 自定义窗口形状(ETC平滑的角落不是矩形)在Windows中使用C 创建OpenGL窗口
- 如何使用QT中的自定义标题栏移动窗口
- 如何基于类定义构建对话框窗口?(比如Django的模型系统)
- WTL 如何在同一窗口中使用 2 个自定义绘制的 CListViewCtr
- wxwidgets 自定义事件不会传播到父窗口
- Qt-如何在不使用插槽的情况下检测自定义事件循环中的关闭窗口
- 是否可以在visualstudio调试窗口中定义用户定义的变量
- 如何在主窗口中定义矩阵.cpp C++
- 窗口的自定义日历类型
- 在自定义控件中创建子按钮窗口后崩溃
- 尝试在Qt中获取自定义窗口框架时LNK2019问题
- Qt5 将自定义窗口关闭信号连接到其他窗口
- 具有 MinGW 4.8 的窗口上的模板未定义引用
- 如何使用Direct2D创建自定义窗口铬
- 如何影响COMBOBOX窗口类的定义
- 链接:致命错误LNK1561:必须定义VS2015开发者cmd窗口的入口点