博客日历
| 2025年12月 | ||||||
| 一 | 二 | 三 | 四 | 五 | 六 | 七 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 | 1 | 2 | 3 | 4 |
存档
2025年03月 11月 2024年
03月 04月 05月 2021年
01月 02月 11月 12月 2020年
02月 03月 04月 05月 06月 07月
09月 2018年
09月 2017年
01月 02月 07月 2016年
01月 04月 07月 08月 11月 12月
2015年
01月 02月 03月 05月 09月 10月
11月 2014年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2013年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2012年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2011年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2010年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2009年
03月 04月 05月 06月 07月 08月
09月 10月 11月 12月
注册全局热键
1.获取一个全局标识符
ATOM m_AtomId=NULL;
m_AtomId= GlobalAddAtom("HotKey_{GUID}");
if (m_AtomId==0)
{
::MessageBox( NULL, "获取标识符失败!", "提示", MB_OK | MB_ICONINFORMATION );
return;
}
2.注册热键
//因为GlobalAddAtom返回的值在0xC000-0xFFFF之间,而
//应用程序中要求标识符的值在0X0000-0xBFFF范围内,所以减去0xC000
m_AtomId-=0xC000;
int nErrorCode=RegisterHotKey(m_hWnd,m_AtomId,MOD_CONTROL|MOD_ALT,'K');
if (nErrorCode==0)
{
::MessageBox( NULL, "注册热键Ctrl+Alt+K失败!", "提示",
MB_OK | MB_ICONINFORMATION );
MB_OK | MB_ICONINFORMATION );
return;
}
//执行RegisterHotKey后,如果用户按下了热键,系统将发送WM_HOTKEY
//到m_hWnd指定的窗体。
3.响应WM_HOTKEY消息
·ON_MESSAGE(WM_HOTKEY,OnHotKeyDown)
·afx_msg LRESULT OnHotKeyDown(WPARAM wParam, LPARAM lParam);
·LRESULT CXXXXXDlg::OnHotKeyDown(WPARAM wParam, LPARAM lParam)
{
DWORD dwModifiersLow=((DWORD)lParam & 0x0000FFFF);
DWORD dwModifiersHigh=(DWORD)lParam >>16;
if ( (dwModifiersLow==(MOD_CONTROL|MOD_ALT)) && dwModifiersHigh=='K')
{
//执行自己需要的操作
}
return 0;
}
4.退出应用程序时释放资源
UnregisterHotKey(m_hWnd,m_AtomId);
GlobalDeleteAtom(m_AtomId);
上一篇: 用并口控制BH1415F调频发射芯片
下一篇: 关闭日志的匿名评论功能
分类:Win32/C++ 查看次数:7493 发布时间:2010/1/16 14:04:29