MFC注册热键的方法(RegisterHotKey)

利用RegisterHotKey注册多个热键

1、自己定义系统的WM_HOTKEY消息,如:

#define ID_EXIT   0x5000
#define ID_SHOW   0X6000 

2、声明OnHotkey方法,在.h头文件的位置如下

// Generated message map functions

afx_msg LONG OnHotKey(WPARAM wPARAM, LPARAM lPARAM);

DECLARE_MESSAGE_MAP()

3、添加BEGIN_MESSAGE_MAP中的声明,如下:

BEGIN_MESSAGE_MAP(xxxxx, xxxxx)
....
ON_MESSAGE(WM_HOTKEY,OnHotKey)

...
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

4、注册热键,一般在OnInitDialog,如下:

::RegisterHotKey(this->GetSafeHwnd(),ID_SHOW,MOD_CONTROL,'S');
::RegisterHotKey(this->GetSafeHwnd(),ID_EXIT,MOD_CONTROL,'E');

5、实现OnHotKey方法,处理具体热键事件:

LONG xxx::OnHotKey(WPARAM wPARAM, LPARAM lPARAM)
{
if (wPARAM == ID_EXIT)
{
AfxMessageBox("EXIT", 0, 0);
}
if(wPARAM == ID_SHOW)
{
AfxMessageBox("SHOW", 0, 0);
}
return 0;
}

你可能感兴趣的:(技术类)