MFC注册热键】的更多相关文章

注册热键. 当用户点击注册的快捷键时,做出相应的响应. 定义 ALT+M键为测量按钮响应函数: 头文件中定义: #define ID_HOTKEY1 10001 在初始化函数中加入注册热键函数: if(false == RegisterHotKey(this->GetSafeHwnd(),ID_HOTKEY1,MOD_ALT,'M') ) //VK_F1:F1响应 { AfxMessageBox("遥控器注册热键失败!"); } 重写对话框中响应热键的消息: WM_HOTKEY…
MSDN中的一个示例代码,步骤就是RegisterHotKey注册热键,然后响应WM_HOTKEY消息 @1:这个是系统热键 #include "stdafx.h" int _cdecl _tmain ( int argc, TCHAR *argv[]) { if (RegisterHotKey( NULL, 1, MOD_ALT | MOD_NOREPEAT, 0x42))  //0x42 is 'b' { _tprintf(_T("Hotkey 'ALT+b' regis…
uses windows,menus; ..... //声明 HotKey_Key: Word; HotKey_Shift: Word; procedure WMHotKey(var msg : Tmessage); message WM_HOTKEY; ...... function ShiftStateToWord(Shift:TShiftState): Word; begin if ssShift in Shift then Result :=MOD_SHIFT else Result :…
重写DefWndProc事件 #region Window 消息捕获 const int WM_COPYDATA = 0x004A; public struct COPYDATASTRUCT { public IntPtr dwData; public int cbData; [MarshalAs(UnmanagedType.LPStr)] public string lpData; } [DllImport("user32")] public static extern bool C…
由于最近在做wpf版的截图软件,在处理全局热键的时候,发现国内博客使用的都是winform窗体的键盘处理方式,此方式需要使用winform的动态库,如此不协调的代码让我开始在github中寻找相关代码. 最终,我找到了,wpf本身就支持处理系统的键盘消息(包括热键). 使用ComponentDispatcher类处理键盘消息 下面贴上代码,方便大家复制粘贴: public static class HotkeyListener { /// <summary> /// 热键消息 /// <…
由于.Net没有提供专门的类库处理热键,所以需要直接调用windows API来解决. HotKey为.NET调用Windows API的封装代码,主要是RegisterHotKey和UnregisterHotKey class HotKey { /// <summary> /// 如果函数执行成功,返回值不为0. /// 如果函数执行失败,返回值为0.要得到扩展错误信息,调用GetLastError..NET方法:Marshal.GetLastWin32Error() /// </su…
原文 将所需的库添加到您的qmake项目(.PRO文件) LIBS += \ -lUser32 2.在代码中包含所需的头文件. #include <windows.h> 在程序开始时注册热键 // 热键id #define HOT_KEY_ALT_CTRL_M 0 #define HOT_KEY_CTRL_A 1 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui…
在头文件中添加: //}}AFX_MSGafx_msg LRESULT OnHotKey(WPARAM wParam,LPARAM lParam);//(此行为加入的)BEGIN_MESSAGE_MAP(DlgYesNo, CDialog)//{{AFX_MSG_MAP(DlgYesNo) 在cpp文件中加入://}}AFX_MSG_MAP ON_MESSAGE(WM_HOTKEY,OnHotKey) //(此行为加入的)END_MESSAGE_MAP() 以上步骤也可以在 "类向导"…
很多玩游戏的人都知道一般游戏客户端程序是不允许双开的,就是说在同一游戏在启动的时候,是无法打开多个窗口.很多其他软件如酷狗播放器等也是这样.如果把打开的窗口最小化,这时重新启动程序,最小化的窗口会被显示,而不是重新开一个窗口.    今天突然想把我自己以前做的音乐播放器, 也加这么一个功能.查了点资料,主要用到了FindWindow这个函数.    原型如下: HWND FindWindow ( LPCSTR lpClassName, //输入窗口的类名,其实需要是注册过的类名才行,否则是要报错…
注册表简介 有时程序中要存些设置信息,一个方法就是创建一些普通的txt或xml文件,然后保存进去就行了.另一办法就是保存到注册表里.注册表是由windows维护的一个小数据库.里面也会保存windows本身的很多配置信息. 我们在命令行通过regedit可以手动打开注册表查看相关信息.在页面上我们会看到左边有很多树形结构的内容,我们可以简单的把它等同于目录.最顶端的5个根键所包括的内容分别是 1.)HKEY_CLASSES_ROOT 定义了系统中所有文件类型标志和基本操作标志.  2.)HKEY…
对于mfc的添加热键的文章已经有很多了,我这里就简单的说一下并且说一些可能出的错误 首先在资源文件中添加ACCELERATOR然后在资源文件下的RC中找到ACCELERATOR的节点,打开后可以发现一个IDR_ACCELERATOR1打开IDR_ACCELERATOR1,按tab键切换到选择ID列表,这里是选择你要添加哪个控件为快捷键,然后在切换到修饰符,这里是选择你是否要使用组合键,如CTRL,CTRL+SHIFT,等等然后在切换到键列表,这里选择你要添加的快捷键,也可以自行输入按键字符,按键…
呵呵,最近在研究SendMessage函数,其中需要用到m_hWnd,之后延伸着又尝试获得窗口的句柄,于是遇到了FindWindow函数,原型如下: HWND FindWindow ( LPCSTR lpClassName,    //输入窗口的类名,其实需要是注册过的类名才行,否则是要报错或者查找失败的. LPCSTR lpWindowName, //输入窗口的名称,就是窗口上面蓝色的那行玩意儿写的字. ); 对于这个函数,如果按照窗口的名称查找,相信大家都非常简单,因为名称在rc文件里,是已…
第一步:在要实现快捷键的窗体中更改属性“KeyPreview”为True:第二步:在要实现快捷键的窗体中的OnKeyPress事件中填入一个过程名称(在Object Inspector中),填写好后回车就可转入事件代码填写部分:第三步:填写事件处理过程,下面给出一个例子:procedure TFrmMain.KeyPress(Sender: TObject; var Key: Char);beginif key in [' '] then  begin    B_Play_Pause.Click…
转载:http://www.cuteqt.com/blog/?p=2088 Qt对于系统底层,一直没有很好的支持,例如串口并口通信,还有我们经常都会用到的全局热键,等等.既然Qt可能出于某种原因,不对这些进行支持,我们就只能自己写代码,调用系统相关的API了. 注意,这个是Windows篇,就说明这些代码只支持windows系统.同时,也说明肯定还有其他平台的要写.不过要等O(∩_∩)O~ 在Qt要调用Windows的API其实很简单,只要在需要用到的头文件中添加#include <window…
函数功能:该函数定义一个系统范围的热键. 函数原型:BOOL RegisterHotKey(HWND hWnd,int id,UINT fsModifiers,UINT vk): 参数: hWnd:接收热键产生WM_HOTKEY消息的窗口句柄.若该参数NULL,传递给调用线程的WM_HOTKEY消息必须在消息循环中中进行处理. id:定义热键的标识符.调用线程中的其他热键不能使用同样的标识符.应用功能程序必须定义一个0X0000-0xBFFF范围的值.一个共享的动态链接库(DLL)必须定义一个0…
闲扯: 前几日,一个朋友问我如何实现按 F1 键实现粘贴(Ctrl+V)功能,百度了一个方法,发给他,他看不懂(已经是 Boss 的曾经的码农),我就做了个Demo给他参考.今日得空,将 Demo 整理一下,做为收集,也给大家一个参考. Begin: 注册系统热键,.net 类库好像没有提供现成的方法,需要使用系统提供的 DLL. 微软将许多常用的系统函数都封装在 user32.dll 中,注册系统热键使用到的 RegisterHotKey 函数和 UnregisterHotKey 函数也在该…
一.全局热键注册 1.先引用DLL [System.Runtime.InteropServices.DllImport("user32.dll")] //导入WinAPI public static extern bool RegisterHotKey( //设置热键 IntPtr hWnd, // 窗口句柄,一般使用Handle属性 int id, // 区别热键的ID号,这个可以随便写,只是用来区分不同热键 uint fsModifiers, // 修正键用户接下哪些键是发生 可能…
玩网页游戏挂机,又不想让别人看见你电脑的运行.所以写了个后台运行的程序. 先谁HotKey注册类,用来调用com组件来显示与隐藏窗体: using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; using System.Windows.Forms; namespace ntsvs { static class Hotkey { //系统api#r…
我们需要用非Hook的方法,来给我们的app 或者winform注册热键. 就像下面的 , 欧陆词典注册的一个热键F6一样, 在winform最小化的情况下,也能够全局响应热键. 这里使用系统API来注册.能够达到最好的性能. 代码如下: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq…
要像系统注册一个全局热键,需要用到RegisterHotKey,函数用法如下(MSDN):BOOL RegisterHotKey(                                                HWND hWnd,                                          int id,                                          UINT fsModifiers,                   …
朋友用QT做了个自动玩的,觉得有意思,自己也想用MFC做个试试. 模拟器用的BlueStacks.Android SDK带的那个模拟器不知道是不是设置的问题,开游戏很卡. 用MFC建了对话框工程,配置极简化. 1.控制鼠标移动 SetCursorPos(x1, y1);//设置鼠标位置 mouse_event(MOUSEEVENTF_LEFTDOWN, , , , );//左键按下 SetCursorPos(x2, y2);//设置鼠标位置 mouse_event(MOUSEEVENTF_LEF…
  Qt对于系统底层,一直没有很好的支持,例如串口并口通信,还有我们经常都会用到的全局热键,等等.既然Qt可能出于某种原因,不对这些进行支持,我们就只能自己写代码,调用系统相关的API了. 注意,这个是Windows篇,就说明这些代码只支持windows系统.同时,也说明肯定还有其他平台的要写.不过要等O(∩_∩)O~ 在Qt要调用Windows的API其实很简单,只要在需要用到的头文件中添加#include <windows.h>即可.不过要注意,Qt仅支持win32的API,像MFC之类的…
0.测试环境 VS2015专业版,基于对话框的MFC程序, 例子地址:http://pan.baidu.com/s/1qX9IRec 1.MFC工程设置 类向导->消息->WM_HOTKEY->添加处理程序->确定或编辑代码 执行后MFC工程会生成下面的代码 //-------------------MFC_TESTDlg.h afx_msg void OnHotKey(UINT nHotKeyId, UINT nKey1, UINT nKey2); //声明消息处理函数 //--…
combo box控件用法: 下拉选择控件,首先将控件拖动到你需要使用控件的地方,用ClassWizard为它关联一个变量,我们注意到变量类型是CString型的.右击属性,General中可以设置一般属性类容Data中可以设置该控件下拉选择的内容,Styles中设置combo box控件风格,Extended Styles设置扩展风格,主要的设置在Data中,Data中设置了下拉菜单的所有下拉内容,如图所示. 在Data中每一行作为一个下拉菜单的一行内容,其中要注意的是换行应该用Ctrl+En…
1 toolbar默认位图左上角那个点的颜色是透明色,不喜欢的话可以自己改. 2 VC++中 WM_QUERYENDSESSION WM_ENDSESSION 为系统关机消息. 3 Java学习书推荐:<java编程思想> 4 在VC下执行DOS命令 a. system("md c:\\12"); b. WinExec("Cmd.exe /C md c:\\12", SW_HIDE); c. ShellExecute ShellExecute(NULL,…
2009.07.31 ------------------------------------------------------------------------------------ No.1 /*调用外部程序*/ ::ShellExecute(NULL,"open","NOTEPAD.EXE","E:\\学习\\计算机学习\\面向对象程序设计\\学习笔记\\MFC学习笔记.txt","E:\\学习\\计算机学习\\面向对象程序…
1.初衷 主要是想设计一个自带添加工具按钮和按钮的快捷键的基窗体.这样以后所设计的窗体只要继承自这个窗体就可以实现热键响应和动态加工具按钮的功能了 写这边文章主要是为了以后使用的时候有个参考,因为这只是个demo,长时间不用总会忘记的.到时候可以翻看,同时也可以给博友借鉴.接下来,我详细说明这个窗体如何设计的 2.设计步骤 I.新建一个winform项目,此时默认自带form1窗体,放置一个toolstrip工具控件 II.引用程序集rabbit.core.dll,也就是我封装好的热键响应帮助类…
.NET技术交流群 199281001 .欢迎加入. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Forms; using System.Windows.Interop; using System.Collections; /// <summary> /// 直接构造类实例即可注册…
原文链接: http://www.cnblogs.com/liuweilinlin/archive/2012/08/16/2643272.html 一 MFC程序执行过程剖析 1)我们知道在WIN32API程序当中,程序的入口为WinMain函数,在这个函数当中我们完成注册窗口类,创建窗口,进入消息循环,最后由操作系统根据发送到程序窗口的消息调用程序的窗口函数.而在MFC程序当中我们不在能找到类似WinMain这样的程序入口,取而代之的是一系列派生类的声明和定义以及一个冲CWinApp类派生而来…
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Forms; using System.Windows.Interop; namespace WpfHot…