zoukankan      html  css  js  c++  java
  • CGridCtrl中的combox增加模糊查找功能

    void CComboEdit::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags) 
    {
    	if (nChar == VK_ESCAPE) 
    	{
            CWnd* pOwner = GetOwner();
            if (pOwner)
                pOwner->SendMessage(WM_KEYUP, nChar, nRepCnt + (((DWORD)nFlags)<<16));
            return;
        }
    
    	if (nChar == VK_TAB || nChar == VK_RETURN || nChar == VK_ESCAPE)
        {
            CWnd* pOwner = GetOwner();
            if (pOwner)
                pOwner->SendMessage(WM_KEYUP, nChar, nRepCnt + (((DWORD)nFlags)<<16));
            return;
        }
    	FuzzySearch();
    	CEdit::OnKeyUp(nChar, nRepCnt, nFlags);
    }
    void FindStrNoCase(CStringArray& strTotalArr,CString strFind,CStringArray& strDestArr);
    void CComboEdit::FuzzySearch()
    {
    	// 模糊查找实现
    
    	CInPlaceList1* pOwner = (CInPlaceList1*) GetOwner();  // This MUST be a CInPlaceList1
    	if (pOwner)
    	{
    		CString str;
    		GetWindowText(str);
    		CStringArray strArr;
    		if (str==L"")//  全部删除字符时候,回到初始化状态,显示所有
    		{
    			pOwner->ResetContent();
    			for (int ii=0;ii<m_strTotalArr.GetCount();ii++)
    			{
    				pOwner->AddString(m_strTotalArr[ii]);
    			}
    		}
    
    		FindStrNoCase(m_strTotalArr,str,strArr);
    		if (strArr.GetCount()>0)
    		{
    			pOwner->ResetContent();
    		}
    
    
    		SetWindowText(str);
    		SetSel((int)_tcslen(str), -1);
    
    		for (int ii=0;ii<strArr.GetCount();ii++)
    		{
    			pOwner->AddString(strArr[ii]);
    		}
    
    	}
    }
    void FindStrNoCase(CStringArray& strTotalArr,CString strFind,CStringArray& strDestArr)
    {
    	strDestArr.RemoveAll();
    	for (int ii=0;ii<strTotalArr.GetCount();ii++)
    	{
    		CString str=strTotalArr[ii];
    		str.MakeLower();
    		strFind.MakeLower();
    		if (str.Find(strFind)!=-1)
    		{
    			strDestArr.Add(strTotalArr[ii]);
    		}
    	}
    }
    

      

  • 相关阅读:
    面向对象的分析与设计
    Django的ORM补充
    JDBC数据库连接池
    Python 中的深浅拷贝
    智能机系统分析
    hyperf框架学习
    HTTP协议知识
    百度知道有关php抓取问题
    awk之FS的指定
    从DELPHI到JAVA[delphi]
  • 原文地址:https://www.cnblogs.com/alphaxz/p/15055040.html
Copyright © 2011-2022 走看看