我想在我的C++/Qt应用程序的Windows上实现全局热键。我使用了RegisterHotKey,令人惊讶的工作,我可以看到,按组合触发我的事件,但因为我不知道任何其他方式,我只是用一个循环,现在阻止我的窗户,并阻止它显示出来。C++ Win32监听全局keybind
你可以在下面找到我的代码。我如何倾听这种组合?肯定有另一种方式。
void set_win32_keys(MainWindow *mwin) {
HWND main_hwnd = (HWND)mwin->winId();
RegisterHotKey(main_hwnd, 2, MOD_CONTROL | MOD_SHIFT, 0x32 /*2 key*/);
MSG *msg;
msg = new MSG();
BOOL b_ret;
while ((b_ret = GetMessage(msg, main_hwnd, 0, 0)) != 0) {
if (b_ret == -1) {
qDebug() << "Error";
} else {
if (msg->message == WM_HOTKEY) {
mwin->new_screenshot();
qDebug() << msg;
}
}
}
}
@kfsone对不起,我编辑了我的问题 – calmandniceperson