阅读量:4
在C++中,可以使用RegisterHotKey函数来注册组合键。下面是一个示例代码,用于注册三个组合键:
#include <windows.h> int main() { // 注册第一个组合键,按下Ctrl + Alt + A触发 BOOL result1 = RegisterHotKey(NULL, 1, MOD_CONTROL | MOD_ALT, 'A'); if (!result1) { MessageBox(NULL, "注册第一个组合键失败!", "错误", MB_OK); return 1; } // 注册第二个组合键,按下Ctrl + Alt + B触发 BOOL result2 = RegisterHotKey(NULL, 2, MOD_CONTROL | MOD_ALT, 'B'); if (!result2) { MessageBox(NULL, "注册第二个组合键失败!", "错误", MB_OK); return 1; } // 注册第三个组合键,按下Ctrl + Alt + C触发 BOOL result3 = RegisterHotKey(NULL, 3, MOD_CONTROL | MOD_ALT, 'C'); if (!result3) { MessageBox(NULL, "注册第三个组合键失败!", "错误", MB_OK); return 1; } // 进入消息循环,等待组合键触发 MSG msg; while (GetMessage(&msg, NULL, 0, 0)) { if (msg.message == WM_HOTKEY) { int id = msg.wParam; switch (id) { case 1: // 第一个组合键被触发 // 在此处添加对应的处理逻辑 MessageBox(NULL, "第一个组合键被触发!", "提示", MB_OK); break; case 2: // 第二个组合键被触发 // 在此处添加对应的处理逻辑 MessageBox(NULL, "第二个组合键被触发!", "提示", MB_OK); break; case 3: // 第三个组合键被触发 // 在此处添加对应的处理逻辑 MessageBox(NULL, "第三个组合键被触发!", "提示", MB_OK); break; } } } // 注销注册的组合键 UnregisterHotKey(NULL, 1); UnregisterHotKey(NULL, 2); UnregisterHotKey(NULL, 3); return 0; }
以上代码使用了RegisterHotKey函数来注册三个组合键(Ctrl + Alt + A, Ctrl + Alt + B, Ctrl + Alt + C),并使用消息循环来等待这些组合键的触发。在消息循环中,根据触发的组合键ID进行相应的处理逻辑。最后,在程序退出前需要使用UnregisterHotKey函数来注销注册的组合键。