◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
实现程序最小化后仍可接收按键输入
在日常使用过程中,我们经常希望即使程序最小化了,也能对其发送按键输入。例如,在使用 c++hrome 浏览器时,希望能通过特定的快捷键在最小化状态下唤醒它。
要实现此功能,可以使用注册全局热键的方法。全局热键是指无论程序的窗口是否处于活动状态,都可以接收它。就像 qq 这类应用,即使最小化了,也可以通过快捷键进行截图、唤醒和打开消息框。
在 microsoft visual c++ 中,注册全局热键的方法如下:
#include <windows.h> #include <commctrl.h>
bool registerhotkey( hwnd hwnd, // 给定的键盘钩子函数的窗口句柄 int id, // 热键标识符(无符号整数) uint fsmodifiers, // 修饰符(如mod_control、mod_alt) uint vk, // 虚拟键代码(如vk_f1、vk_space) );
在消息循环中添加对 wm_hotkey 消息的处理:
case WM_HOTKEY: { // 检查热键标识符 if (id == HOTKEY_ID) { // 执行你想要的动作 } }
详细的示例和说明,请参考 msdn 文档:
[全局热键](https://docs.microsoft.com/zh-cn/cpp/mfc/global-hot-keys?view=msvc-160&viewfallbackfrom=vs-2017)
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。