【发布时间】:2019-11-21 01:37:35
【问题描述】:
我有一个带有 CComboBox 的 DropList 样式的对话框。我希望它在以下情况下调用我的函数(例如LoadData()):
- 用户单击下拉列表中的项目,或
- 下拉列表中的一个项目被突出显示(通过鼠标悬停或键盘),并且用户按下回车键
但不是当用户仍在#2 中输入文本时。
在ON_CBN_SELCHANGE 处理程序中调用LoadData() 对于#1 可以正常工作,但对于#2,此事件会在每次击键时触发,而不是仅在输入时触发。换句话说,如果我有组合框项目:
1
12
123
然后我输入12,它将触发ON_CBN_SELCHANGE 一次用于1,一次用于12 ...但实际上我正在尝试输入123,所以我不想要那些第一个2 次击键导致LoadData() 调用。
实现这个的正确方法是什么?
【问题讨论】:
-
ON_CBN_SELENDOK -
就是这样!谢谢!你能把这个作为答案让我接受吗?
-
@zett42 有趣的是,那里的最佳答案增加了与 CEdit 的一些交互,这在我的情况下不需要。我猜他们的组合框使用下拉样式,而我的使用下拉列表。这算不算重复?
标签: user-interface mfc ccombobox