Visual C++ 7.1Visual Studio 6Visual C++ 7.0Windows 2003Windows 2000Visual C++ 6.0Windows XP中级开发Visual StudioWindowsC++
全局热键变得容易






4.17/5 (9投票s)
2003年5月9日

118597

1321
一个方便注册和处理全局热键的类
引言
本文将向您展示如何使用 CHotkeyHandler
类来管理和创建全局热键。
使用代码
#include <conio.h>
#include <stdio.h>
#include "hotkeyhandler.h"
void handA(void *)
{
printf("this is A\n");
}
void handQ(void *)
{
printf("this is Q\n");
}
void hand1(void *param)
{
WinExec((char *)param, SW_SHOW);
}
int main(void)
{
int err, id;
CHotkeyHandler hk;
hk.InsertHandler(MOD_CONTROL | MOD_ALT, 'Q', handQ, id);
hk.InsertHandler(MOD_CONTROL | MOD_ALT, 'A', handA, id);
hk.InsertHandler(MOD_CONTROL | MOD_ALT, '1', hand1, id);
err = hk.Start("calc.exe");
if (err != CHotkeyHandler::hkheOk)
{
printf("Error %d on Start()\n", err);
return err;
}
printf("hotkeys started!!!\n...press any key to stop them...\n");
getch();
err = hk.Stop();
return 0;
}
首先,我们声明一个 CHotkeyHandler
实例。然后,我们开始插入由它们的控制键、虚拟键和回调函数定义的热键。InsertHandler()
将返回一个注册热键的标识符。您可以使用此 ID 与 RemoveHandler()
配合使用。在插入处理程序后,可以通过调用 Start()
来启用热键。您应该始终检查 CHotkeyHandler
方法返回的错误代码。Start()
将接受一个可选参数,该参数将在注册的回调函数被调用时传递给它。然后,我们通过 Stop()
禁用所有热键。
有关错误代码和其他方法描述的更多信息,请参阅 CHotkeyHandler.cpp 文件。就这样了。
历史
- 2003年5月9日
- CodeProject 的初始版本
- 2003年10月20日
- 源代码已更新