软件开中有时候需要实现按下 Ctrl+A 等组合按键,在MFC直接捕获 ON_WM_KEYDOWN 是无法触发事件,需要重载PreTranslateMessage 函数
直接上代码
BOOL CMFCApplication1Dlg::PreTranslateMessage(MSG *msg)
{
//键盘按键
if(msg->message>=WM_KEYFIRST && msg->message<=WM_KEYLAST)
{
//GetKeyState函数返回VK_CONTROL(Ctrl)键的状态 小于0表示按下
if(msg->wParam==90 && ::GetKeyState(VK_CONTROL)<0)
{
this->MessageBox("KeyDown Shift!","Caption",MB_OK);
}
return TRUE;
}
return CDialogEx::PreTranslateMessage(msg);
}
当按下Ctrl+Z时