注册系统热键

利用系统热键可以方便用户操作,快速调用另一个程序。比如可以按Ctrl+Alt+z可以调出QQ的聊天窗口。

方法比较简单,大致思路是用RegisterHotKey注册自定义热键和添加自定义消息,就可以实现增加系统热键。

第一步:

在类的头文件中添加

public:
ATOM m_atomId; //存储向操作系统添加的全局原子,是热键的标识符号
BOOL m_bRegister; //标识热键是否注册成功.TRUE:成功;FALSE:失败

在源代码文件中添加如下代码

//向操作系统添加一个全局原子Atom m_atomId,作为该热键的符号名称
m_atomId = GlobalAddAtom("myHotKey");
//设定ALT+Z为热键,应当尽量使用比较生疏的进行注册
//注册成功将m_bRegister变为TRUE,否则m_bRegister为FALSE
if(!RegisterHotKey(m_hWnd, m_atomId, MOD_ALT, 'Z'))
m_bRegister = FALSE;
else
m_bRegister = TRUE;

 

第二步:

添加自定消息响应函数

在头文件中添加

afx_msg void OnHotKey(WPARAM wParam,LPARAM lParam);
在源码文件中的BEGIN_MESSAGE_MAP之后END_MESSAGE_MAP之前添加如下的消息映射定义如下:
ON_MESSAGE(WM_HOTKEY,OnHotKey) 

手工添加热键消息处理函数OnHotKey,注意其第一参数代表被按下的热键的符号标志.在该函数中用户可以完成注册Alt + Z热键需要进行的工作,比如呼出winap等.本例以演示为目的,不做具体的工作,只是弹出一个消息对话框响应该热键.代码如下:
void CMyHotKeyView::OnHotKey(WPARAM wParam, LPARAM lParam)
{
//如果按下的热键是用户注册的Alt + Z,则弹出消息对话框进行响应
//否则,什么都不做,交由系统去处理该热键事件
if(m_atomId == wParam)MessageBox("系统热键 Alt+Z 被激活", "响应系统热键", MB_OK);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值