MFC COMBOBOX 短代码 实现的自动匹配输入 自动完成 但有小缺陷

这篇博客介绍了如何使用MFC的CComboBox控件实现自动匹配输入的功能。作者通过监听CBN_EDITCHANGE消息,当用户输入字符时,查找并选择以输入字符开头的项,并高亮显示其余部分。然而,文章提到这种方法存在一个问题,即在进行回删操作时也会触发自动匹配,作者希望找到一个更简洁的方法来避免这个问题,但不希望通过处理键盘回删消息来解决。
摘要由CSDN通过智能技术生成

1、想要实现的功能:

mfc自带的combobox控件实现自动匹配输入,比如用户输入 'c' 后,在下拉的项中存在以c开头的item,就自动匹配此item,并且除用户输入的字符外,其他字符显示被选中状态。

2、网上有现成例子存在,但代码不够简洁,比较多,而且涉及到子父窗口的消息传递,稍微有点繁琐(ps:可能有更简洁的,但我不知道)

3、实现代码:

A、mfc中添加CComboBox控件,关联控件ID,映射CComboBox的CBN_EDITCHANGE消息。

B、在父窗口类中保存一个成员变量 int i1; 

C、在CBN_EDITCHANGE的消息响应函数中实现:

CString edittext;
CString comboxtext;
m_combox.GetWindowText(edittext);
int count = m_combox.GetCount();

DWORD dwSel;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值