在程序中使用热键

1、向系统注册热键

//第二参数是序号,如果同一个程序中有多个热键,此序号须不同
RegisterHotKey(this->Handle,1,MOD_ALT,VK_F11);
如果不确定序号是多少,可以采用以下方法:
int HotKeyId = GlobalAddAtom("Hello");//HotKeyId作为上面函数的第二参数.此函数参数为任意字符串。此函数保证序号不重复。
2、拦截热键消息
.h文件中声明如下:

protected:
        BEGIN_MESSAGE_MAP
                VCL_MESSAGE_HANDLER(WM_HOTKEY, TMessage, hotkey)
        END_MESSAGE_MAP(TForm)
        void __fastcall hotkey(TMessage & msg);

3、Cpp中编写消息处理过程

void __fastcall TForm1::hotkey(TMessage & msg)
{
      TForm::Dispatch(&Msg);
      if(msg.LParamLo == MOD_ALT && msg.LParamHi == VK_F11)
      {
          ShowMessage("热键");
      }
}

运行时,按下alt + F11将弹出对话框
在窗口的 Close消息中,调用如下代码,释放热键:
//注销热键
UnregisterHotKey(this->Handle,m_arrHotKey[0]);
GlobalDeleteAtom(m_arrHotKey[0]);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值