注册 登录
编程论坛 VC++/MFC

VC如何注册多个热键?

sunnysab 发布于 2012-06-01 21:25, 3131 次点击
如题。

程序代码:

#include<windows.h>
int main()
{

 RegisterHotKey(NULL,0x0001,MOD_CONTROL|MOD_ALT,'X');//注册热键
MSG msg;

 while(GetMessage(&msg,NULL,0,0))//从消息队伍获取消息
{
  if(msg.message==WM_HOTKEY)//热键消息
  {
   if(MessageBox(NULL,"你确定要退出程序吗?","热键提示",MB_YESNO|MB_SYSTEMMODAL)==IDYES)
   {
    UnregisterHotKey(NULL,0x0001);//卸载热键
    break;
   }
  }

 }

 return 0;
}

我已知道以上代码可以注册热键并对其进行处理,但是如何注册两个热键呢?对两个热键进行处理!

环境:VC/CLI
系统:WINXP
对两个热键的处理:随便
先谢谢大家哈!
3 回复
#2
hellovfp2012-06-02 11:13
#include<windows.h>
#include <stdio.h>
int main()
{
    RegisterHotKey(NULL,0x0001,MOD_CONTROL|MOD_ALT,'X');//注册热键
    RegisterHotKey(NULL,0x0002,MOD_CONTROL|MOD_ALT,'T');//注册热键
    MSG msg;
    while(GetMessage(&msg,NULL,0,0))//从消息队伍获取消息
    {
        if(msg.message==WM_HOTKEY)//热键消息
        {
            if(msg.wParam == 0x0002) printf("you press ctrl+alt+T hotkey\n");
            else if(MessageBox(NULL,"你确定要退出程序吗?","热键提示",MB_YESNO|MB_SYSTEMMODAL)==IDYES)
            {
                UnregisterHotKey(NULL,0x0001);//卸载热键
                UnregisterHotKey(NULL,0x0002);//卸载热键
                break;
            }
        }
    }
    return 0;
}
#3
sunnysab2012-06-02 14:37
哦,原来如此!谢谢你!
#4
ヅpromise、2012-06-02 17:02
学习一下了
1