我想定义自己的热键,比如按F1响应自己的函数,不知道怎么实现。不要告诉我用钩子
我看到有人说用RegisterHotKey()函数,可我尝试了半天也没有成功
高手指点一下~~

解决方案 »

  1.   

    那你就捕获WM_KEYDOWN吧LRESULT cmydlg::OnKeydown(WPARAM wParam, LPARAM lParam)
    {
       if(wParam == VK_F1)
       {
          // write process code
       }
    }
      

  2.   

    其它键都可以,主要是对于F1这种MFC已经定义了的,消息好像传不过来啊
      

  3.   

    BOOL CtestDlgDlg::PreTranslateMessage(MSG* pMsg) 
    {

        if ( pMsg->message == WM_KEYDOWN ) 
        {         
            switch( pMsg->wParam ) 
            { 
            case VK_F1: 
               // add your code 
    AfxMessageBox("aaa");
                return TRUE; 
            } 
        }  return CDialog::PreTranslateMessage(pMsg); 
    }
      

  4.   


    去除F1的帮助功能,重载WM_HELPINFO消息:
    ------------------------------------------------------
    BOOL CYourdlgDlg::OnHelpInfo(HELPINFO* pHelpInfo) 
    {
    return TRUE;//CDialog::OnHelpInfo(pHelpInfo);
    }
    ------------------------------------------------------