在一个窗体中怎么设置快捷键?
比如按一下ALT+Q,自动运行单击COMMAND1的函数
并不是系统热键,在当前窗体下按ALT+Q才有效
可能出现两个窗体都有ALT+Q的情况
求答

解决方案 »

  1.   

    在PreTranslateWindow中截获该组合按键,然后调用你的按钮处理函数即可。
    示例:BOOL CTestDlg::PreTranslateMessage(MSG* pMsg)
    {
    if(pMsg->message==WM_SYSKEYDOWN)
    {
    if(pMsg->lParam&0x21000000)
    {    if(pMsg->wParam=='Q')        //拦截ALT+Q组合键
     CTestDlg::OnButton1();  //执行Button1的单击函数
    }
    }
           return CDialog::PreTranslateMessage(pMsg);
    }
      

  2.   

    没测试过系统热键和pretranslatemessage谁先截获消息,如果是系统热键先,可能要考虑使用钩子。