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

      

  • 相关阅读:
    面试十题(4)
    TS中给接口指定的成员?
    TS中定义泛型接口的两种方式
    ts中泛型的使用
    ts中类的属性的封装
    ts中接口的使用
    自定义hook的步骤
    react中如何使用useReducer?
    react中useContext的使用
    react 中useRef的作用
  • 原文地址:https://www.cnblogs.com/alphaxz/p/15055040.html
Copyright © 2011-2022 走看看