首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过输入键进行选择的CComboBox事件?

通过输入键进行选择的CComboBox事件?
EN

Stack Overflow用户
提问于 2019-07-11 10:44:12
回答 1查看 250关注 0票数 1

我有一个带有CComboBox的DropList样式的对话框。我希望它在以下情况下调用我的函数(例如LoadData()):

  1. 用户单击下拉列表中的项,或
  2. 删除列表中的项将被高亮显示(鼠标悬停或键盘),用户按enter键。

但当用户仍然在第2#中输入文本时,情况就不是这样了。

LoadData()处理程序中调用ON_CBN_SELCHANGE对#1很好,但是对于#2,这个事件会在每次击键时触发,而不仅仅是在enter时触发。换句话说,如果我有组合框项目:

代码语言:javascript
复制
1
12
123

我输入12,它将触发ON_CBN_SELCHANGE一次用于1,一次用于12 .但实际上,我正在尝试键入123,所以我不希望前两个击键导致LoadData()调用。

实现这一点的正确方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-14 10:36:31

关于你问题中的评论,以下是答案:

  • 右键单击控件并选择添加事件处理程序

  • 选择对话框类,选择消息CBN_SELENDOK (如果愿意,可以调整方法名称):

  • 这将为您添加默认事件处理程序:
代码语言:javascript
复制
    void CMFCApplication1Dlg::OnCbnSelendokCombo1()
    {
        // TODO: Add your control notification handler code here
    }

现在,您可以按需要进行操作。

替代方案

  • 选择控件,然后查看属性窗格。单击控件事件

  • 在列表中找到CBN_SELENDOK,单击下拉箭头并选择添加处理程序的选项:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56987421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档