⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 findedit.cpp

📁 Windows Mobile 手机短信订购软件源程序
💻 CPP
字号:
// FindEdit.cpp: implementation of the CFindEdit class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "FindEdit.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

LRESULT CFindEdit::OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/)
{
	LRESULT lRes = DefWindowProc(uMsg, wParam, lParam);
    return lRes;
}
void CFindEdit::_Init()
{
	m_nTimerID = 11; 
	m_bInput = FALSE;

}

BOOL CFindEdit::SubclassWindow(HWND hWnd)
{
    ATLASSERT(m_hWnd == NULL);
    ATLASSERT(::IsWindow(hWnd));
    BOOL bRet = CWindowImpl< CFindEdit, CEdit, CControlWinTraits >::SubclassWindow(hWnd);
    
	if( bRet ) _Init();
    return bRet;
}

LRESULT CFindEdit::OnKeyDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
	/*
	if(!m_bInput)
	{
	/*	if(wParam != VK_TSOFT1 && wParam != VK_TSOFT2 &&
           wParam !=  VK_TUP && wParam != VK_TLEFT && 
		   wParam !=  VK_TACTION && wParam !=  VK_TRIGHT &&
		   wParam !=  VK_TDOWN && wParam != VK_THOME &&
		   wParam !=  VK_TBACK && wParam != VK_TTALK && 
		   wParam != VK_TEND )
		   */
	/*
		if(wParam >= 0x30 && wParam <0xF6)
		{
			EnableInput(TRUE);
		}
	}
	*/
	if(!m_bInput)
		::SendMessage(m_hWndListCtrl,WM_KEYUP,wParam,lParam);

	if(wParam == VK_TACTION && m_bInput) 
	{
		EnableInput(FALSE);
		::SendMessage(m_hWndListCtrl,WM_MYFINDITEM,wParam,lParam);

	}



	m_nInputIdleCount = 0;
	//if(m_bEnableInput) 
	return DefWindowProc(uMsg,wParam,lParam);
//	else 
	//	return 0;
}

LRESULT CFindEdit::OnChar(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
		// TODO : Add Code for message handler. Call DefWindowProc if necessary.
	if(m_bEnableInput) 
		return DefWindowProc(uMsg,wParam,lParam);
	else 
		return 0;

}
LRESULT CFindEdit::OnTimer(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
	// TODO : Add Code for message handler. Call DefWindowProc if necessary.
	m_nInputIdleCount++;
	if(m_nInputIdleCount>40)
	{
		EnableInput(FALSE);
	}

	return 0;
}

void CFindEdit::EnableInput(BOOL bEnableInput)
{

	if(bEnableInput) 
	{
		CRect rcParent;
		CRect rcClient;
		GetClientRect(&rcClient);
		::GetClientRect(GetParent(),&rcParent);
		SetWindowPos(0, (rcParent.Width() - rcClient.Width()) / 2 +40, 
			(rcParent.Height() - rcClient.Height()) / 2+35,0,0,SWP_NOSIZE);
		//SendMessage(EM_SETINPUTMODE,0,EIM_SPELL );
	//	SetTimer(m_nTimerID,2000);
		m_bEnableInput = TRUE;
		m_bInput = TRUE;
	} else 
	{
	//	KillTimer(m_nTimerID);
		SetWindowPos(0, 0, -20,0,0,SWP_NOSIZE);
		SetWindowText(L"");
		m_bInput = FALSE;
		m_bEnableInput = FALSE;
	}
}

BOOL CFindEdit::IsInput()
{
	return m_bInput;
}	

void CFindEdit::SetEnableInput(BOOL bEnableInput)
{
	m_bEnableInput = bEnableInput;
	if(!bEnableInput)
	{
		TCHAR szFindStr[MAX_PATH];
		GetWindowText(szFindStr,MAX_PATH-1);
		CString sz2 = szFindStr;
		sz2 = sz2.Left(_tcslen(szFindStr)-1);
		SetWindowText(sz2);
		SetSel(sz2.GetLength(),sz2.GetLength());
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -