window编程_消息分类
Window应用程序利用Windows消息(Message)
与应用程序及系统进行信息交换。
消息分为:
消息号:有事先定义好的消息名标识
字节参数(wParam):用于提供消息的附加信息
长字节参数(lParam):用于提供消息的附加信息
注:附加信息与具体消息号的值有关,在Win中消息用结构体MSG表示
//结构体MSG
typedef struct tagMSG
{HWND hwnd; 窗口句柄,为null,则可检索所有驻留在消息队列中的消息
UINT message; 消息值,由Windows.h头文件中的宏定义来标识
WPARAM wParam; 包含有关消息的附加信息,不同消息其值有所不同
LPARAM lParam;
DWORD time; 指定消息送至队列的时间
POINT pt;指定消息发送时屏幕光标的位置,其数据类型POINT也是一个结构体
}MSG;
//结构体POINT
typedef struct tagPOINT
{LONG x;
LONG y;
} POINT;
消息分类:VC中存在几种系统定义的消息分类,
不同的前缀符号经常用于消息宏识别消息附属的分类,
系统定义的消息宏前缀如下:
BM 表示按钮控制消息
CB 表示组合框控制消息
DM 表示默认下压式按钮控制消息
EM 表示编辑控制消息
LB 表示列表框控制消息
SBM 表示滚动条控制消息
WM 表示窗口消息
Windows编程常用消息:
窗口管理消息
初始化消息
输入消息
系统消息
剪贴板消息
控制处理消息
控制通知消息
滚动条通知消息
非用户区消息
MDI消息
DDE消息
应用程序自定义的消息
WM_LBUTTONUP:放开鼠标左键时产生;
WM_RBUTTONDOWN:单击鼠标右键时产生;
WM_RBUTTONUP:放开鼠标右键时产生;
WM_LBUTTONDBLCLK:双击鼠标左键时产生;
WM_RBUTTONDBLCLK:双击鼠标右键时产生。
系统键:是指实现系统操作的组合键,
例如Alt与某个功能键的组合以实现系统菜单操作等
常用Windows消息:
1. WM_LBUTTONDOWN:产生单击鼠标左键的消息
lParam->低字节包含当前光标得X坐标
高字节包含当前光标得Y坐标
wParam包含一整套数值以标识鼠标键的按下状态
2. WM_KEYDOWN:按下一个非系统键是产生的消息->
wParam:按下键的虚拟键码,用以标识按下或释放的键
lParam:记录了按键的重复次数、扫描码、转移代码、先前键的状态等信息。
3. WM_ CHAR:按下一个非系统键时产生的消息
wParam 为按键的ASCII码
lParam 与WM_KEYDOWN的相同
4. WM_CREATE:由CreateWindow函数发出的消息
wParam:未用
lParam:包含一个指向CREATESTRUCT数据结构的指针
5. WM_CLOSE:关闭窗口时产生的消息
wParam和lParam均未用。
6. WM_DESTROY:由DestroyWiodow函数发出的消息
wParam和lParam均未用。
7. WM_QUIT:由PostQuitMessage函数发出的消息,退出应用程序时发出的消息
wParam:含退出代码,标识程序退出运行时的有关信息
lParam:未用
8. WM_PAINT:需要窗口重画是产生的消息
产生条件:
用户移动或显示,用户改变窗口大小,程序通过滚动条滚动窗口,
下拉式菜单关闭并需要恢复被覆盖的部分,
Windows清除对话框等对象,并需要恢复被覆盖的部分
window编程_消息分类的更多相关文章
- 如何给对话框中的控件发送消息呢?Windows消息分类
以博文CTabCtrl中介绍的那样,给Tab添加子对话框来显示Tab内容.那么如果这个子对话框中含有个CTreeCtrl控件,有个Button控件,我想要模拟给这两个控件发送消息,该怎么办呢?直接把给 ...
- centos5.5字体为方块问题的解决_深入学习编程_百度空间
centos5.5字体为方块问题的解决_深入学习编程_百度空间 centos5.5字体为方块问题的解决 一.yum -y install fonts-chinese二.yum -y install f ...
- 20165325 2017-2018-2 《Java程序设计》结对编程_第二周:四则运算
20165325 2017-2018-2 <Java程序设计>结对编程_第二周:四则运算 一.码云链接 FAO项目的码云链接; 1.Git提交日志已经实现一个功能/一个bug修复的注释说明 ...
- 高性能网络编程3----TCP消息的接收
高性能网络编程3----TCP消息的接收 http://blog.csdn.net/russell_tao/article/details/9950615 http://blog.csdn.net/c ...
- 第2课第3节_Java面向对象编程_继承性_P【学习笔记】
摘要:韦东山android视频学习笔记 面向对象程序的三大特性之继承性:继承性的主要作用就是复用代码.继承性也有一定的限制,如图一 图一 1.我们在第2课第2节_Java面向对象编程_封装性_P 中 ...
- Python并发编程之消息队列补充及如何创建线程池(六)
大家好,并发编程 进入第六篇. 在第四章,讲消息通信时,我们学到了Queue消息队列的一些基本使用.昨天我在准备如何创建线程池这一章节的时候,发现对Queue消息队列的讲解有一些遗漏的知识点,而这些知 ...
- chrome 不支持window.webkitNotifications.createNotification消息通知API了
今天惊奇的发现,chrome22里已经不支持window.webkitNotifications.createHTMLNotification方法了: 但是,在chrome extension里还可以 ...
- 高性能网络编程2----TCP消息的发送
转 陶辉 taohui.org.cn 在上一篇中,我们已经建立好的TCP连接,对应着操作系统分配的1个套接字.操作TCP协议发送数据时,面对的是数据流.通常调用诸如send或者write方法来发送数据 ...
- linux makefile: c++ 编程_基础入门_如何开始?
学习android 终究还是需要研究一下其底层框架,所以,学习c++很有必要. 这篇博客,算是linux(ubuntu) 下学习 c++ 的一个入门. 刚开始学习编程语言的时候,最好还是使用命令行操作 ...
随机推荐
- npm后台启动nuxt服务之 kill
后台启动 npm run start & ps aux | grep start 根据项目对应的id执行如下命令 kill xxxx
- CF5E Bindian Signalizing
题目 这题目是真的很水,洛谷给他紫题也差不多算恶意评分了吧233 这种一眼切的题改了很长时间,不是什么n-1搞错,就是什么and打成or,所以写这篇博客给自己长个记性QWQ 题意:n座山组成一个环,相 ...
- DP擎天
DP! 黄题: 洛谷P2101 命运石之门的选择 假装是DP(分治 + ST表) CF 982C Cut 'em all! 树形贪心 洛谷P1020 导弹拦截 单调队列水题 绿题: 洛谷P1594 护 ...
- halcon预处理函数
颜色空间变换 trans_from_rgb(ImageRed, ImageGreen, ImageBlue :ImageResult1, ImageResult2, ImageResult3 : Co ...
- 映像文件工具srec
目录 映像文件工具srec 介绍与帮助 常用例子 常用选项 一个实际的例子 hex转bin 数据填充 文件合并 文件分割 加入CRC 查看信息 使用命令集合的文本 详细文件格式的描述 附录:MDK的例 ...
- Java计算文件MD5值(支持大文件)
import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.securit ...
- G1 垃圾收集器入门
最近在复习Java GC,因为G1比较新,JDK1.7才正式引入,比较艰难的找到一篇写的很棒的文章,粘过来mark下.总结这篇文章和其他的资料,G1可以基本稳定在0.5s到1s左右的延迟,但是并不能保 ...
- Shiro与CAS整合实现单点登录
1.简介 CAS:Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法. Shiro:Apache Shiro是一个Java安全框架,可以帮助我们完成认证.授权.会话管 ...
- Git Gerrit使用
Git Gerrit 操作都用 git bash操作: 如果想用 cmd 或者 PowerShell,系统环境变量 Path 添加 Git 安装路径,如: C:\Program Files (x86) ...
- JN_0005:PS改变图片指定内容颜色
1,打开图片. 2,选择选区,抽取出独立图存 选中选区,按ctrl + alt + j ,抽取图层. 3,选中图层,再按住 ctrl,点击图层图标 的白色选区处,即可选中图层中的内容. 4,选中图层内 ...