MFC 给对话框注册热键

 

在头文件中添加:

//}}AFX_MSG
afx_msg LRESULT OnHotKey(WPARAM wParam,LPARAM lParam);//(此行为加入的)
BEGIN_MESSAGE_MAP(DlgYesNo, CDialog)
//{{AFX_MSG_MAP(DlgYesNo)

cpp文件中加入:
//}}AFX_MSG_MAP

ON_MESSAGE(WM_HOTKEY,OnHotKey) //(此行为加入的)
END_MESSAGE_MAP()

以上步骤也可以在 "类向导" 中添加消息  WM_HOTKEY 消息的方法产生 

OnCreat事件里加入:(添加消息响应 -> WM_CREAT)
RegisterHotKey(m_hWnd,1001,MOD_ALT,’ Q’);

OnDestroy事件里加入::(添加消息响应 -> WM_DESTROY)
UnregisterHotKey( m_hWnd, 1001); 

加入消息处理函数:(粘贴进去就行了,注意CHotkeyDlgDlg改为自己的类)

LRESULT CHotkeyDlgDlg::OnHotKey(WPARAM wParam,LPARAM lParam)

{

    if(wParam == 1001)

    {

       int nMod = LOWORD(lParam);

       int Vk = HIWORD(lParam);

       CString str;

       str.Format(_T("Mod = %d, Vk = %d"), nMod, Vk);

       AfxMessageBox(str);

    }

    return true;

}

 

原文地址:https://www.cnblogs.com/lujin49/p/5279193.html