📄 findedit.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 + -