zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    课程总结
    每日总结66
    每日总结65
    每日总结64
    每日总结63
    每日总结62
    每日总结61
    每日总结60
    偶滴点NET复习
    内部异常SocketException由于目标计算机积极拒绝
  • 原文地址:https://www.cnblogs.com/Toya/p/11252392.html
Copyright © 2011-2022 走看看