首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

在MFC中使用热键解决方案

2012-02-12 
在MFC中使用热键在构造函数中注册热键后CFlyDlg::CFlyDlg(CWnd*pParent/*NULL*/):CDialog(CFlyDlg::IDD,p

在MFC中使用热键
在构造函数中注册热键后
CFlyDlg::CFlyDlg(CWnd*   pParent   /*=NULL*/)
:   CDialog(CFlyDlg::IDD,   pParent)
{
//省略其他语句
RegisterHotKey(NULL,0x1001,NULL,VK_F12);
}
执行热键的程序,程序名是怎么样的?
以下是我写的执行程序,但是无法使用
LRESULT   CFlyDlg::OnHotKey(WPARAM   wParam,   LPARAM   lParam)
{
if   (wParam   ==   0x1001     &&   lParam   ==   VK_F12)

                  {
                            //执行程序
                  }
}
以前写过这些的,郁闷,不小心把硬盘全部格式化了,55555。
高手请说明一下我哪里写错了。
(我的要求是这个程序在后台运行,点击热键后,执行if   (wParam   ==   0x1001     &&   lParam   ==   VK_F12)后面的程序)

[解决办法]
那就应该是RegisterHotKey没有成功。
在这方法中,第一个参数是接受热键的窗口handle, 不能为NULL.
另外,你通过查看该方法的返回值来确定建立热键是否成功。

#define ID_HOTKEY 0x1011

if (!RegisterHotKey(hDlg, ID_HOTKEY, NULL, VK_F12))
{
AfxMessageBox(TEXT( "Register Hot Key Failed. "));
}

hDlg是对话框的句柄。
将0x1011替换掉,便于改动。

热点排行