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]);
    		}
    	}
    }
    

      

  • 相关阅读:
    Mysql集群
    JAVA 经典算法 40 例
    公司面试问题总结
    面试题6
    面试题5
    Java自学-JDK环境变量配置
    mybatis中#{}和${}的区别
    JVM系列(四)— 原子性、可见性与有序性
    JVM系列(三)— Java内存模型
    Java基础拾遗(一) — 忽略的 Integer 类
  • 原文地址:https://www.cnblogs.com/alphaxz/p/15055040.html
Copyright © 2011-2022 走看看