捕获组合键 键盘组合键

Posted yanghongche

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了捕获组合键 键盘组合键相关的知识,希望对你有一定的参考价值。

① 捕获【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);  
 

[转自]http://blog.csdn.net/dijkstar/article/details/8944131

以上是关于捕获组合键 键盘组合键的主要内容,如果未能解决你的问题,请参考以下文章

使用 Qt 4.6 从键盘挂钩键和组合键

[C#]C# 如何捕获键盘按钮和组合键以及KeyPress/KeyDown事件之间的区别 (附KeyChar/KeyCode值)

Qt和PyQt中的组合键输入捕获处理

WPF中设置组合键时间

WPF 捕获键盘输入事件

如何用delphi获取键盘扫描码及模拟键盘组合键