QQ登录

只需一步,快速开始

68上位机VC MFC组合框实现查询功能

[ 复制链接 ]

68上位机VC MFC组合框实现查询功能

68上位机VC MFC组合框实现查询功能
68上位机VC MFC组合框实现查询功能

功能展示
在使用组合框时,我时想实现在组合框中输入内容,实现输入内容的标底功能,但微软自带的组合框不带此功能,我们得亲自动手实现。用户输入一字符,就进行查询组合框中以此字符打头的内容,并将查询结果显示出来。效果如图
要点提示
实现查询功能可以通过CComboxBox的查询函数SelectString方法实现;语法int SelectString( int nStartAfter, LPCTSTR lpszString ); nStartAfter为开始标识 的位置索引; lpszString 为所要查找的字符串;
再通过SetEditSel()函数实现查找结果的选中的显示;语法BOOL SetEditSel( int nStartChar, int nEndChar );
nStartChar为开始标识的位置索引; nEndChar 为结束标识的位置索引
实现功能
1.新建基于对话框的应用程序
2.从CComboBox派生一个自定义类class CSerchCombo : public CComboBox;添加一变量BOOL m_bEexcuteSearch;并在PreTranslateMessage()函数中赋值
  1. {
  2.         if(pMsg->message==WM_KEYDOWN)
  3.         {
  4.                 m_bEexcuteSearch=true;
  5.                 int nVirtKey=(int)pMsg->wParam;
  6.                 if(nVirtKey==VK_DELETE||nVirtKey==VK_BACK)
  7.                         m_bEexcuteSearch=false;
  8.         }
  9.         return CComboBox::PreTranslateMessage(pMsg);
  10. }
复制代码
3.添加组合框的CBN_EDITUPDATE消息响应函数或CBN_EDITCHANGE都行,我们当前工程添加CBN_EDITCHANGE消息响应函数
  1. void CSerchCombo::OnEditchange()
  2. {
  3.         if(!m_bEexcuteSearch)return;
  4.         CString str;
  5.         GetWindowText(str);
  6.         int nLength=str.GetLength();
  7.         DWORD dwCurSel=GetEditSel();

  8.         DWORD dStart =LOWORD(dwCurSel);
  9.         DWORD dEnd =HIWORD(dwCurSel);
  10.         if(SelectString(-1,str)==CB_ERR)
  11.         {
  12.                 SetWindowText(str);
  13.                 if(dwCurSel!=CB_ERR)
  14.                         SetEditSel(dStart,dEnd);
  15.         }
  16.         GetWindowText(str);
  17.         if(dEnd < nLength && dwCurSel!=CB_ERR)
  18.                 SetEditSel(dStart,dEnd);
  19.         else
  20.                 SetEditSel(nLength,-1);
  21. }
复制代码
最后是在主对话框中使用我们自定义的这个组合框类;添加组合框资源并关联变量CSerchCombo  m_Combo;给m_Combo添加些文本,进行查询测试;

我们来演示下功能实现的整个过程

请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:68.上位机VC MFC组合框实现查询功能.rar 
文件大小:135.37 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索