Duilib热键

转载:https://www.zhaokeli.com/article/8288.html

在initwindow中注册热键

1 //生成热键标识,需要保存起来退出时销毁使用
2 int m_HotKeyId = ::GlobalAddAtom("MyHotKey");
3 //注册热键
4 BOOL re=::RegisterHotKey(m_hWnd,m_HotKeyId,MOD_ALT,VK_F8);
5 DWORD er;
6 if (re == 0) {
7     er=::GetLastError();
8 }

如果有多个控制符组合就是 | 分隔写48-57对应主键盘上的0-9。65-90对应A-Z     更多虚拟码请参考

https://baike.baidu.com/item/%E8%99%9A%E6%8B%9F%E9%94%AE%E7%A0%81/9884611?fr=aladdin

 

然后在handlemessage中拦截热键消息  WM_HOTKEY  处理自己的功能

1 //取热键标识,多个热键时区分使用
2 int HotKeyId = wParam;
3 //控制键
4 UINT  fuModifiers = ( UINT ) LOWORD(lParam);
5 //虚拟键码
6 UINT  uVirtKey = ( UINT ) HIWORD(lParam);
7 if (HotKeyId == m_HotKeyId) {
8     //...处理一些事情
9 }

最后别忘啦退出程序时销毁注册的热键

1 UnregisterHotKey(m_hWnd, m_HotKeyId);

 

转载于:https://www.cnblogs.com/Toya/p/11252392.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值