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平台的主要功能 ... 
随机推荐
- json标准是双引号
			双引号才是json 的标准,单引号是不规范的(虽然在js 中是行的通的)!json 的名称和字符串值需要用双引号引起来,单引号的话,使用json.parse会出现错误 
- Ajax     comet   XMLHttpRequest   异步
			function createXHR() { if (typeof XMLHttpRequest != “undefi ned”){ return new XMLHttpRequest(); ... 
- day2--第2章(计算机系统硬件核心知识)
			第二章--计算机系统核心硬件知识 (一)互联网企业里PC服务器品牌及型号 互联网公司服务器品牌: DELL(大多数公司),HP,IBM(百度),浪潮,联想,航天联志. Dell服务器品牌: 1U = ... 
- tomcat相关实验
			tomcat相关实验 1.实现LNT 同主机实现 1.安装并启动tomcat 1)OpenJDK的安装 yum install java-1.8.0-openjdk-devel.x86_64 确定JD ... 
- ASP.NET Core 应用程序Startup类介绍
			Startup类配置服务和应用程序的请求管道. Startup 类 ASP.NET Core应用程序需要一个启动类,按照惯例命名为Startup.在主程序的Web Host生成器(WebHostBui ... 
- SUCTF--WEB
			题目:flag 在哪? 介绍:网址(http://23.106.143.230/a_real_babyweb.php) 1,打开网址,抓包可以发现在 HTTP 头里面有 Cookie:suctf{Th ... 
- Windows下安装BeautifulSoup
			python版本为2.7 1.去官网下载BeautifulSoup4 Beautiful Soup 4.3.2 2.解压文件 将下载得到的压缩包解压到任意文件夹,路径不含中文 3.打开cmd命令提示符 ... 
- C# 通过url地址获取页面内容
			using System.Net; using System.IO; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(" ... 
- Foundation框架的小总结
			一.Foundation框架—结构体 一.基本知识 Foundation框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数 ... 
- Android截屏的几种实现
			Android截屏的几种实现 微信公众号:CodingAndroid CSDN:http://blog.csdn.net/xinpengfei521 最近我们的APP要求需要截屏功能,网上看了看大致有 ... 
