BOOL CMydilog::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message == WM_KEYDOWN)
{
switch (pMsg->wParam)
{
case VK_ESCAPE:
SetFocus ();
return TRUE;
case 'X':
if(::GetKeyState(VK_CONTROL) < 0)//如果是Shift+X这里就
//改成VK_SHIFT
MessageBox("hello");
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
用GetKeyState来判断ctrl键?
ks =GetKeyState(VK_CONTROL)||GetKeyState(VK_SHIFT)||GetKeyState(VK_MENU);
if(pMsg->message == WM_KEYDOWN && pMsg->wParam != VK_ESCAPE&& pMsg->wParam != VK_F11&&pMsg->wParam != VK_F1&&pMsg->wParam != VK_F2 && pMsg->wParam != VK_F3&&pMsg->wParam != VK_F4 && pMsg->wParam != VK_F5&& pMsg->wParam != 'N'&& pMsg->wParam != 'H'&& pMsg->wParam != 'O'&& pMsg->wParam != 'W' && pMsg->wParam != 'M' && pMsg->wParam != 'P' && (ks>=0 || pMsg->wParam==VK_CONTROL || pMsg->wParam=='C' || pMsg->wParam == 'X' || pMsg->wParam == 'V' || pMsg->wParam == 'Z' || pMsg->wParam == VK_INSERT||pMsg->wParam == 'A'||pMsg->wParam == 'F'))
{
if(pMsg->wParam == VK_RETURN)
{
return FALSE;
}
BOOL bResult=PreTranslateInput(pMsg);
return bResult;
}