1-3-2 Windows应用程序常用消息
主要内容:介绍Windows编程中常用的消息
1.WM_LBUTTONDOWN产生单击鼠标左键的消息
lParam:
低字节包含当前光标的X坐标值 X = LOWORD(lParam);
高字节包含当前光标的Y坐标值 Y = HIWORD(lParam);
wParam: 包含一组整数值,用来标识鼠标键的按下状态
可以通过switch-case来使用它
给出几个按下状态
MK_LBUTTON 按下鼠标左键
MK_MBUTTON 按下鼠标中键
MK_RBUTTON 按下鼠标右键
MK_SHIFT 按下SHIFT键
MK_CONYROL 按下Ctrl键
例子:
case WM_LBUTTONDOWN:
if(wParam & MK_SHIFT) //若shift也有按下
2.此外,相似的消息还有:
WM_LBUTTONDOWN 按下鼠标左键时产生
WM_LBUTTONUP 松开鼠标左键时产生
WM_RBUTTONDOWN 按下鼠标右键时产生
WM_RBUTTONUP 松开鼠标右键时产生
WM_LBUTTONDBLCLK 双击鼠标左键时产生
WM_RBUTTONDBLCLK 双击鼠标右键时产生
WM_MOUSEMOVE 鼠标经过窗口的显示区域时产生
WM_MBUTTONDOWN 按下鼠标中键时产生
WM_MBUTTONUP 松开鼠标中键时产生
3.WM_KEYDOWN 按下一个非系统键时产生的消息
<1>系统键:是指实现系统操作的组合键,
例如Alt与某个功能键的组合以实现系统菜单操作等,
非系统键就是不与alt联用的键
注解:
凡是ALT和其它键一同按下的组合称为“系统键”,
窗口收到系统键之后,会自动地将它解释成系统事件,
或者查阅键盘加速表,将系统键翻译成加速表指定的信息。
如:ALT+F4的组合会迫使窗口关闭,“ALT+字母”的组合可能会拉下某个菜单。
非系统键就是不按下ALT键时的按键(比如单一按键)
<2> wParam:虚拟码,用以标识按下或释放的键
lParam:记录了按键的重复次数、扫描码、转移代码、先前键的状态等信息
<3>相似的还有WM_KEYUP,在放开非系统键时产生的消息
<4>虚拟键以VK_开头进行标识,如VK_SHIFT,VK_LBUTTON等
3.其他常见消息
<1> WM_CHAR 按下一个非系统键时产生的消息
wParam 为按键的ASCII码 lParam 与WM_KEYDOWN相同
<2> WM_CREATE:由CreateWindow函数发出的消息
wParam 未用
lParam 包含一个指向CREATESTRUCT数据结构的指针
<3> WM_CLOSE:关闭窗口时产生的消息
wParam和lParam均未使用
wParam和lParam均未使用
<5> WM_QUIT:由PostQuitMessage函数发出的消息
wParam 含退出代码,标识程序退出运行时的有关信息
1-3-2 Windows应用程序常用消息的更多相关文章
- 【转】windows常用消息大全(系统消息、通告消息、用户消息)
原文网址:http://blog.csdn.net/nupt123456789/article/details/7370562 附录A Windows 常用消息大全 表A-1 Windows消息分布 ...
- [C#菜鸟]C# Hook (三) Windows常用消息大全
表A-1 Windows消息分布 消息范围 说 明 0 - WM_USER – 1 系统消息 WM_USER - 0x7FFF 自定义窗口类整数消息 WM_APP - 0xBFFF 应用程序自定义消 ...
- Windows 常用消息及含义
消息范围 说明 0 - WM_USER – 1 系统消息 WM_USER - 0x7FFF 自定义窗口类整数消息 WM_APP - 0xBFFF 应用程序自定义消息 0xC000 - 0xFFFF ...
- Windows窗体应用程序常用的几个类的属性、方法以及事件
System.Diagnostics.Process 属性 public bool EnableRaisingEvents { get; set; }//获取或设置在进程终止时是否应激发 Exited ...
- Windows窗口程序从创建到关闭产生的消息
Windows是消息驱动的,理解消息机制及消息循环是特别重要.知道在什么情况下产生什么消息会让我们对程序有更好的控制.Windows给应用程序发消息,有些会加入应用程序的消息队列,也是就是队列消息.有 ...
- SendMessage函数的常用消息及其应用大全
来源:http://www.360doc.com/content/09/0814/10/19147_4907488.shtml,非常全面的解释. 文本框控件通常用于输入和编辑文字.它属于标准 Wind ...
- windows应用程序框架及实例
应用程序框架:同一类型应用程序的结构大致相同,并有很多相同的源代码,因此可以通过一个应用程序框架AFX(Application FrameWorks)编写同一类型应用程序的通用源代码. 主要向导: D ...
- 【系统篇】从int 3探索Windows应用程序调试原理
探索调试器下断点的原理 在Windows上做开发的程序猿们都知道,x86架构处理器有一条特殊的指令——int 3,也就是机器码0xCC,用于调试所用,当程序执行到int 3的时候会中断到调试器,如果程 ...
- 1-1 Windows应用程序的特点
主要内容:介绍Windows应用程序的特点,并附加了消息和事件的一些区别 //以后该分类中字体均采用 隶书 4(14pt) 1. 面向对象 <1>针对Windows应用本身,如记事本界面, ...
随机推荐
- [vijos P1112] 小胖的奇偶
第一次看到这题怎么也不会想到是并查集题目…星期五第一次看到这题,到今天做出来,实在是废了好多功夫.看了很多人的解题都有same和diff数组,我也写了,后来发现不对啊两个数组的话find函数怎么写呢? ...
- JDBC专题
JDBC ·持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数据持久化以为着将内存中的数据保存到硬盘上加以“固化”,而持久化的实现过程大多 ...
- 从github上面拷贝源码
http://www.cnblogs.com/xing901022/p/4287064.html
- Block编程值得注意的那些事儿
[深入浅出Cocoa]Block编程值得注意的那些事儿 [深入浅出Cocoa]Block编程值得注意的那些事儿 罗朝辉 (http://www.cnblogs.com/kesalin/) 本文遵循 ...
- Unknown type name “CGFloat
一.编绎显示Unknown type name “CGFloat” 错误解决方法 将Compile Sources As 改为 Objective-C++ 二.如果是extern const引起的. ...
- sidePagination: "server"和responseHandler: responseHandler
bootstrapTable()中有两个属性 一个是sidePagination,表示服务器分页,responseHandler:responseHandler 表示回应操作的rows和total 两 ...
- hadoop常见错误集锦
1 Hadoop namenode -format后Incompatible namespaceIDS 错误解决办法 重新格式话namenode后,会重新分配一个namespaceId, 这个nam ...
- Redis - sort set类型操作
sort set操作:sort set在set基础上增加了一列用于存储顺序序列设置操作:zadd key: zadd key sortnum value 指定key增加元素 ...
- linux远程连接mysql数据库
在linux系统中,远程连接mysql数据库时不仅需要开启ip访问,还需要将防火墙中添加相应规则 在wdlinux中的[安全管理]菜单下选择[防火墙[iptables]]选项,增加端口为3306的规则 ...
- C++宏定义中"#"与"##"的妙用
在C++开发当中经常用到宏的定义当中使用"#"或者"##",以下是对着两种符号使用方法的简单描述: define中的#就是把#后面的参数当做一个符号来使用,简单 ...