duilib 快捷键发送消息
全局快捷键设置类,文章最以下,有3种不同的使用方法(假设设置的快捷键,与其它软件的快捷键同样。那么仅仅有你的程序起作用。你释放后它才干够使用)
.h文件
#pragma once
class CHotKey
{
public:
CHotKey(void);
~CHotKey(void);
public:
//注冊全局热键
BOOL RegisterHotKey(HWND hWnd, UINT fsModifiers, UINT vk);
//卸载全局热键
BOOL UnRegisterHotKey(HWND hWnd);
//是否触发热键
BOOL IsTriggerHosKey(WPARAM wParam, LPARAM lParam);
//
virtual void ResponseKeyEvent(WPARAM wParam, LPARAM lParam);
private:
int m_nHotKeyID;//热键ID
HWND m_hWnd;
UINT m_fsModifiers;
UINT m_vk;
};
.cpp文件
#include "StdAfx.h"
#include "HotKey.h"
CHotKey::CHotKey(void)
:m_nHotKeyID(-1)
,m_hWnd(NULL)
{
}
CHotKey::~CHotKey(void)
{
if (m_hWnd)
UnRegisterHotKey(m_hWnd);
}
BOOL CHotKey::RegisterHotKey( HWND hWnd, UINT fsModifiers, UINT vk )
{
m_hWnd = m_hWnd;
m_fsModifiers = fsModifiers;
m_vk = vk;
m_nHotKeyID = GlobalAddAtom("MyHotKey") - 0xC000;
return ::RegisterHotKey(hWnd,m_nHotKeyID,m_fsModifiers,m_vk);
}
BOOL CHotKey::UnRegisterHotKey(HWND hWnd)
{
m_hWnd = NULL;
return ::UnregisterHotKey(hWnd,m_nHotKeyID);
}
BOOL CHotKey::IsTriggerHosKey(WPARAM wParam, LPARAM lParam)
{
if (LOWORD(lParam) == m_fsModifiers && HIWORD(lParam) == m_vk)
return TRUE;
return FALSE;
}
void CHotKey::ResponseKeyEvent( WPARAM wParam, LPARAM lParam )
{
if (IsTriggerHosKey(wParam,lParam))
{
//.....
}
}
//使用例如以下
列1:1个系统键+1虚拟键
m_HotKey.RegisterHotKey(m_uiPaintManager.GetPaintWindow(),MOD_ALT,'S');
//收到数据处理
switch(uMsg)
{
case WM_HOTKEY:
{
if (m_HotKey.IsTriggerHosKey(wParam,lParam))
{
//做事情
}
}
break;
}
列2:2个系统键(ctrl+shit)
qq的发送消息方式
m_HotKey.RegisterHotKey(hWnd,m_nHotKeyID,MOD_SHIFT|MOD_CONTROL,0);
//收到数据处理
switch(uMsg)
{
case WM_HOTKEY:
{
if ((GetKeyState(VK_SHIFT)<0) && (GetKeyState(VK_CONTROL)<0))
{
//做事情
}
}
break;
}
列3:2个系统键+1虚拟键
m_HotKey.RegisterHotKey(hWnd,m_nHotKeyID,MOD_SHIFT|MOD_CONTROL,‘S’);
//收到数据处理
switch(uMsg)
{
case WM_HOTKEY:
{
if ((GetKeyState(VK_SHIFT)<0) && (GetKeyState(VK_CONTROL)<0) && (HIWORD(lParam) == 'S'))
{
//做事情
}
}
break;
}
duilib 快捷键发送消息的更多相关文章
- PHP实现RTX发送消息提醒
RTX是腾讯公司推出的企业级即时通信平台,大多数公司都在使用它,但是我们很多时候需要将自己系统或者产品的一些通知实时推送给RTX,这就需要用到RTX的服务端SDK,建议先去看看RTX的SDK开发文档( ...
- 【C#】给无窗口的进程发送消息
注:本文适用.net2.0+的winform程序 一个winform程序,我希望它不能多开(但是如何防多开不是本文要讲的),那么在用户启动第二个实例的时候,作为第二个实例来说,大概可以有这么几种做法: ...
- 增加线程异步发送消息的方法二(Runnable)
//获取当前时间:毫秒 long a = System.currentTimeMillis(); System.out.println("a :" + a); try { //更改 ...
- 增加线程异步发送消息的方法一(Thread)
@RequestMapping(value="order/updateOrder.do") public String updateOrder(HttpServletRequest ...
- 一步一步来做WebQQ机器人-(五)(发送消息||完结)
× 本篇主要是: 发送QQ消息(to:好友,群),以及对小黄鸡抓包利用它的语言库 本文是WebQQ流程的最后一章 最后一章内容不多但我还是啰嗦,可能对大部分人都已知晓的流程方法我也会介绍一下 前面几个 ...
- 【转载】Delphi7从子线程中发送消息到主线程触发事件执行
在对数据库的操作时,有时要用一个子线程来进行后台的数据操作.比如说数据备份,转档什么的.在主窗口还能同是进行其它操作.而有时后台每处理一个数据文件,要向主窗口发送消息,让主窗口实时显示处理进度在窗口上 ...
- 【读书笔记】iOS-ARC-不要向已经释放的对象发送消息
一,在AppDelegate.m中写入如下代码: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOpti ...
- Linux给指定用户或全部用户(已登录)发送消息
在局域网络内很多时候是许多人共用一些机器,但如果多个人同时在使用同一台机器必定会发生一些冲突,比如系统的某些配置被修改,这样引起一些麻烦.那么如果在使用该机器之前,先给登录到该机器的所有其他用户发送一 ...
- RTX发送消息提醒实现以及注意事项
一.RTX简介 RTX是腾讯公司推出的企业级即时通信平台.该平台定位于降低企业通信费用,增强企业内部沟通能力,改善企业与客户之间的沟通渠道,创造新兴的企业沟通文化,提高企业生产力.RTX平台的主要功能 ...
随机推荐
- [array] leetCode-4-Median of Two Sorted Arrays-Hard
leetCode-4-Median of Two Sorted Arrays-Hard descrition There are two sorted arrays nums1 and nums2 o ...
- kafka学习笔记1:测试环境搭建
最近因为架构中引入了kafka,一些之前在代码中通过RPC调用强耦合但是适合异步处理的内容可以用kafka重构一下. 考虑从头学一下kafka了解其特性和使用场景. 环境选择 首先是测试环境的搭建,平 ...
- ldap数据库--ODSEE--安装
在安装之前最好查看一下服务器硬件是否满足要求,是否需要更改一些系统配置来达到使用ldap数据库的最有性能.实际使用的ldap数据库是oracle的产品,DS70即ODSEE. 安装环境:solaris ...
- python密码错误三次锁定
程序需求: 输入用户名,密码 认证成功显示欢迎信息 输入错误三次后锁定用户 流程图: 好像画的不咋地 #!/usr/bin/env python # _*_ coding:utf-8 _*_ # Fi ...
- Jxl创建Excel文件和解析Excel文件
import java.io.File; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; im ...
- SQL系统函数的使用(实验五)
SQL系统函数的使用(试验5) 函数在查询语句中的使用 查询员工的姓名和日工资(保留1位小数): 查询并显示部门号为01和02的所有员工的姓名首字及岗位: 查询并显示所有员工的姓名及工龄: 查询199 ...
- Python 之 hello world
写好的内容不小心关机都没了...奈何..重写一遍吧... 本机环境 : windows7 sp1 64位 企业版,python3.6 一:安装与配置 1:首先大胆的下载python,新入门的建议下载3 ...
- [转载] MapReduce工作原理讲解
转载自http://www.aboutyun.com/thread-6723-1-1.html 有时候我们在用,但是却不知道为什么.就像苹果砸到我们头上,这或许已经是很自然的事情了,但是牛顿却发现了地 ...
- Upgrading an ASP.NET MVC 2 Project to ASP.NET MVC 3 Tools Update
ASP.NET MVC 3 can be installed side by side with ASP.NET MVC 2 on the same computer, which gives you ...
- JSON Web Tokens(JWT)
现在API越来越流行,如何安全保护这些API? JSON Web Tokens(JWT)能提供基于JSON格式的安全认证.它有以下特点: JWT是跨不同语言的,JWT可以在 .NET, Python, ...