MFC智能提示功能(通过CEdit和CListBox组合实现)

  

效果图如上。

 

 

    本功能只需要Edit编辑框和Listbox这两个控件组合使用即可实现。

    首先为CEdit控件添加ON_EN_CHANGE消息响应函数,编辑框里的内容变化的时候会触发该函数,ListBox的内容可以在此函数中插入(因为我的软件是MFC+MSSQL的,所以我在获取了Edit控件中的字符m_str以后,会利用这个m_str来从SQL数据库中搜索包含m_str的人员你姓名:Select    People_name   From  People   Where People_name   Like  '%'+m_str+'%'),从而完成了Listbox内容的填充。

   然后为Listbox添加ON_LBN_DBLCLK消息响应函数,此函数能够获取Listbox中你所选中的内容;

 

  友情提示:当Listbox和别的控件重叠的时候会造成Listbox控件的显示不完整,楼主的程序中Listbox后面其实是一个Listcontrol控件,起初的显示效果如下:

这种问题怎么解决呢,其实很简单,需要做两步:

1、CTRL+D调整控件TAB顺序,使得ListBox的顺序ID靠前;

2、给后面的Listcontrol控件添加WS_CLIPSIBLINGS属性即可,添加这个属性能够保证Listcontrol控件不会刷新和其他控件重叠的部分,代码如下:

 LONG style = GetWindowLong(m_listCtrlRecordInfo.GetSafeHwnd(),GWL_STYLE);
 style = style | WS_CLIPSIBLINGS ;
 SetWindowLong(m_listCtrlRecordInfo.GetSafeHwnd(),GWL_STYLE,style);

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值