MFC 组合按键实现

软件开中有时候需要实现按下 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时


猜你喜欢

转载自blog.csdn.net/vs2008aspnet/article/details/53690143
MFC
今日推荐