您的位置:首页 > 其它

关于VC注册热键的笔记

2010-12-15 22:35 274 查看
前段时间做了一个宝石迷阵的辅助程序,需要用到全局热键,网上看到了不用键盘钩子注册的全局热键。下面直接贴出来。

(1)首先在适当的位置添加注册热键的代码:

//ID号为2010,无组合键(CTRL等)的F3热键
RegisterHotKey(hMyHandle, 2010, NULL, VK_F3);


(2)在WindowProc函数中添加代码,写该热键所需要执行的过程:

LRESULT CBejeHelpDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
 // TODO: Add your specialized code here and/or call the base class
  
 if (message == WM_HOTKEY)
 {
  if (wParam == 2010)
  {
   //在此处添加代码

  }
 return CDialog::WindowProc(message, wParam, lParam);
}


(3)最后别忘了在程序执行完或者不需要该热键的时候注销这个热键:

UnregisterHotKey(hMyHandle,2010);














最后有必要提一下网上查到的其他的注册热键的办法。

有提到使用ON_MESSAGE()自定义热键消息的办法。

我没有试,但是在印象中,我记得应该在焦点离开该程序的时候就无法响应热键消息了。

所以我觉得这种方式应该不属于全局热键。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: