
2个回答
展开全部
VB那玩意太垃圾,我用起来不顺手,用MFC可以么?
呵呵,反正原理相通,万变不离其宗的~
用MFC中的HotKey控件就行,它是由CHotKeyCtrl类封装的。
你可以用下面的代码来获取用户设置的热键
WORD wVK = 0, wMod = 0;
m_HotKey.GetHotKey(wVK, wMod);
int nNewMod = 0;
if(wMod & HOTKEYF_ALT)
nNewMod |= MOD_ALT;
if(wMod & HOTKEYF_CONTROL)
nNewMod |= MOD_CONTROL;
if(wMod & HOTKEYF_CONTROL)
nNewMod |= MOD_CONTROL;
if(wVK == 0 || wMod == 0)
{
AfxMessageBox(L"Enter HotKey, Please!");
return;
}
然后用RegisterHotKey()函数向系统注册热键,具体用法如下所示:
RegisterHotKey(m_hWnd, 1, nNewMod, wVK);
然后要处理WM_HOTKEY消息,在消息处理函数中隐藏窗口,呵呵,这可不像在VB里,把窗体的Visable属性设置为False
在MFC中,要这样用:this->ShowWindow(SW_HIDE);
到这里,就实现了“老板键”功能,不过,这MFC代码,但愿你能看懂:)
还有一个不幸的消息,据我所知,VB里是没有HotKey控件的,囧~
你也可以在VB中调用API函数SetWindowsHookEx()来设置一个键盘钩子,也能实现,但更麻烦~
无论如何,希望能对你有所帮助,汗~
呵呵,反正原理相通,万变不离其宗的~
用MFC中的HotKey控件就行,它是由CHotKeyCtrl类封装的。
你可以用下面的代码来获取用户设置的热键
WORD wVK = 0, wMod = 0;
m_HotKey.GetHotKey(wVK, wMod);
int nNewMod = 0;
if(wMod & HOTKEYF_ALT)
nNewMod |= MOD_ALT;
if(wMod & HOTKEYF_CONTROL)
nNewMod |= MOD_CONTROL;
if(wMod & HOTKEYF_CONTROL)
nNewMod |= MOD_CONTROL;
if(wVK == 0 || wMod == 0)
{
AfxMessageBox(L"Enter HotKey, Please!");
return;
}
然后用RegisterHotKey()函数向系统注册热键,具体用法如下所示:
RegisterHotKey(m_hWnd, 1, nNewMod, wVK);
然后要处理WM_HOTKEY消息,在消息处理函数中隐藏窗口,呵呵,这可不像在VB里,把窗体的Visable属性设置为False
在MFC中,要这样用:this->ShowWindow(SW_HIDE);
到这里,就实现了“老板键”功能,不过,这MFC代码,但愿你能看懂:)
还有一个不幸的消息,据我所知,VB里是没有HotKey控件的,囧~
你也可以在VB中调用API函数SetWindowsHookEx()来设置一个键盘钩子,也能实现,但更麻烦~
无论如何,希望能对你有所帮助,汗~

2023-06-12 广告
根据大数据评选,2022年电动执行器十大品牌名单有:1. 秀辉。2. 丹冠。3. 方威。4. 天津宝恒。5. 常辅股份。6. 新峰。7. 德博科技。8. 摩控。9. 科威纳。10. deyo。以上十大品牌是电动执行器行业的知名品牌,排名不分...
点击进入详情页
本回答由汉坤(北京)流体控制技术有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询