【发布时间】:2013-02-21 22:40:25
【问题描述】:
这是一个 Windows MFC 编程问题。 我有一个派生的 CComboBox 实现自己的项目绘制和测量。我做了一些改进,下拉列表宽度可以根据列表内容进行调整。 我在 OnDropDown 消息处理程序中使用 SetDroppedWidth 来做到这一点。 插入字符串并单击组合框后,所选字符串内容占用了所有静态/编辑区域,并且缺少下拉按钮。 我可以看到项目 ID 为 -1 的项目的宽度已更改/重置为 ItemDraw 方法中新放置的宽度。我不认为这是正确的行为。我希望新的下拉宽度仅对列表项生效,其项 ID 不小于 0。 有什么想法吗?
【问题讨论】:
-
在初始化组合框项目后尝试调用 SetDroppedWidth。我认为在 OnDropDown 方法中调用它不是一个正确的地方
-
但是这样一来,combobox的宽度只能调整一次,因为初始化只调用了一次。