效果图如上。
本功能只需要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);