描述:
请问斑竹,在ATL中这样接收和处理键盘消息,
解决方案1:
添加windows消息
MESSAGE_HANDLER(WM_KEYDOWN, OnKeyDown)
和
MESSAGE_HANDLER(WM_KEYUP, OnKeyUp)
在classview中右击接口实现类-〉选Add Windows Message Handler-〉选择这两个消息
然后在处理中就根据你的意愿相怎么处理都行
eg:
LRESULT OnKeyDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
// TODO : Add Code for message handler. Call DefWindowProc if necessary.
//MessageBox("keydown!");//(.)(.) \./\./ (o)(o)
//::MessageBox(m_hWnd,"haha","KEYDOWN",MB_OK);
switch(wParam)
{
case VK_LEFT:
case VK_RIGHT:
case VK_UP:
case VK_DOWN:
break;
case VK_NUMPAD4:
Key = VK_LEFT;
break;
case VK_NUMPAD8:
Key = VK_UP;
::MessageBox(m_hWnd,"haha","UP",MB_OK);
break;
case VK_NUMPAD2:
Key = VK_DOWN;
break;
case VK_NUMPAD6:
Key = VK_RIGHT;
break;
default:
break;
}
return 0;
}