捕获组合键VC编程

来源:互联网 发布:走红网络的长板女孩 编辑:程序博客网 时间:2024/06/07 22:36

① 捕获【Ctrl、Ctrl+Alt】和【Ctrl+Alt+Shift】这样的组合键:

BOOL CTestDlg::PreTranslateMessage(MSG* pMsg){if(pMsg->message==WM_KEYDOWN){BOOL bCtrl=::GetKeyState(VK_CONTROL)&0x8000;BOOL bShift=::GetKeyState(VK_SHIFT)&0x8000;BOOL bAlt=::GetKeyState(VK_MENU)&0x8000;switch(pMsg->wParam){case VK_DELETE:if(bCtrl&&bAlt&&bShift)MessageBox("你按下的是Ctrl+Shift+Alt+Delete组合键","信息提示",MB_OK);else if(bCtrl&&bShift)MessageBox("你按下的是Ctrl+Shift+Delete组合键","信息提示",MB_OK);else if(bCtrl)MessageBox("你按下的是Ctrl+Delete组合键","信息提示",MB_OK);return TRUE;case VK_INSERT:if(bCtrl&&bAlt&&bShift)MessageBox("你按下的是Ctrl+Shift+Alt+Insert组合键","信息提示",MB_OK);else if(bCtrl&&bAlt)MessageBox("你按下的是Ctrl+Alt+Insert组合键","信息提示",MB_OK);else if(bCtrl)MessageBox("你按下的是Ctrl+Insert组合键","信息提示",MB_OK);return TRUE;}}

② 捕获【Ctrl + Z】组合键:

BOOL CTestDlg::PreTranslateMessage(MSG* pMsg) {char nChar = pMsg->wParam;if(nChar == 'Z' && ((GetAsyncKeyState( VK_LCONTROL ) & 0x8000))){AfxMessageBox("ctrl + z");}return CDialog::PreTranslateMessage(pMsg);}


原创粉丝点击