在C++程序中使用系统热键(附代码)
很多的程序有使用系统热键的需求,比如:使用热键呼出隐藏程序窗体,或者如QQ、微信打开聊天窗口等等。【注意事项】- 注册热键的API返回false时,表示注册热键失败,说明热键已经被其他程序使用。- 程序退出时,需要注销热键。【代码参考】12345// 注册系统热键的APIRegisterHotKey(ID_HOTKEY_TIMINGEXECUTOR, wxMOD_SHIFT|wxMOD_CONTR
·
很多的程序有使用系统热键的需求,比如:使用热键呼出隐藏程序窗体,或者如QQ、微信打开聊天窗口等等。
【注意事项】
- 注册热键的API返回false时,表示注册热键失败,说明热键已经被其他程序使用。
- 程序退出时,需要注销热键。
【代码参考】
// 注册系统热键的API
RegisterHotKey(ID_HOTKEY_TIMINGEXECUTOR, wxMOD_SHIFT|wxMOD_CONTROL, '1');
// 注销系统热键的API
UnregisterHotKey(ID_HOTKEY_TIMINGEXECUTOR);
bool regHotkey()
{
return RegisterHotKey(ID_HOTKEY_TMEX, m_pPref->m_nHotkey1|m_pPref->m_nHotkey2, m_pPref->m_nHotkey3);
}
if(!regHotkey())
{
m_pPref->ResetHotkeySetting(wxMOD_ALT, '0');
bool bAlt0 = regHotkey();
wxString strTip = _T("Ctrl + Alt + 0");
bool bShift0 = false;
if(!bAlt0)
{
m_pPref->ResetHotkeySetting(wxMOD_SHIFT, '0');
bShift0 = regHotkey();
if(!bShift0)
{
wxMessageBox(_("Register HOTKEY failed.") + _T("\n") +
_("You can reset HOTKEY setting in Setting dialog."),
_("Timing Executor"));
}
else
{
strTip = _T("Ctrl + Shift + 0");
}
}
if(bAlt0 || bShift0)
wxMessageBox(_("Register HOTKEY failed.") + _T("\n") +
_("HOTKEY restore default setting: ") + strTip + _T("\n") +
_("You can reset HOTKEY setting in Setting dialog."),
_("Timing Executor"));
}
// end
更多推荐
已为社区贡献1条内容
所有评论(0)