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清除对话框等对象,并需要恢复被覆盖的部分

转载于:https://www.cnblogs.com/veis/p/6940009.html

window编程_消息分类相关推荐

  1. python队列线程池_实例详解:python高级编程之消息队列(Queue)与进程池(Pool)

    今天为大家带来的内容是:python高级编程之消息队列(Queue)与进程池(Pool),结合了实例的形式详细分析了Python消息队列与进程池的相关原理.使用技巧与操作注意事项!!! Queue消息 ...

  2. 学习笔记:Java 并发编程②_管程

    若文章内容或图片失效,请留言反馈. 部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 视频链接:https://www.bilibili.com/video/av81461839 配套资料: ...

  3. 向Window窗体发送消息,控制程序的运行.

    向Window窗体发送消息,控制程序的运行. 下面是对Windows Media Player进行控制的操作示例. 1.运行Windows Media Player; 2.运行spyxx.exe,点击 ...

  4. 自然语言处理美国政客的社交媒体消息分类

    数据简介: Disasters on social media 美国政客的社交媒体消息分类 内容:收集了来自美国参议员和其他美国政客的数千条社交媒体消息,可按内容分类为目标群众(国家或选民).政治主张 ...

  5. 复习Java异常处理_异常分类_自定义异常_线程初步了解

    复习Java异常处理_异常分类_自定义异常_线程 主要内容 异常.线程 教学目标 第一章 异常 1.1 异常概念 异常,就是不正常的意思.在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点 ...

  6. 电大Android智能手机编程答案,8941_Android智能手机编程_任务3_(福建电大省开课)辅导资料...

    8941_Android 智能手机编程_任务 3_(福建电大省开课)辅导资料 说明:课程题目是随机的,下载后用 WORD 打开,然后按 CTRL+F 在题库中逐一搜索每一 道题的答案投 请仔细阅读以下 ...

  7. 大学生计算机python_人人都能学计算机:计算机科学入门与Python编程_学堂在线章节测试答案...

    查看答案 人人都能学计算机:计算机科学入门与Python编程_学堂在线章节测试答案 单击图层调板下方的新图层按钮可以产生新图层.A:错B:对 在图示的薄壁杆件截面图形中,形心与弯曲中心重合的截面有() ...

  8. Android socket 编程 实现消息推送(二)

    上篇文章Android socket 编程 实现消息推送(一)讲到socket编程的消息推送原理,现在我们来看看基于Android客户机socket编程实现消息推送的过程. 根据消息推送的原理图,我们 ...

  9. Android socket 编程 实现消息推送

    最近用socket写了一个消息推送的demo,在这里和大家分享一下. 主要实现了:一台手机向另外一台手机发送消息,这两台手机可以随时自由发送文本消息进行通信,类似我们常用的QQ. 效果图:    原理 ...

最新文章

  1. 模拟芯片的最大“杀手”,竟然是它?!
  2. 服务器 新文件病毒扫描,部署 Seafile 专业版服务器
  3. jenkins~集群分发功能的具体实现
  4. CSDN登陆校验码模式识别程序
  5. 易语言客户端请求http_易语言建立HTTP连接请求源码
  6. Sicily 1934 移动小球
  7. leetcode python3 简单题119. Pascal's Triangle II
  8. 专科python应届生工资多少-阿里员工吐槽:应届生工资太猛,被倒挂,后悔接阿里侮辱性offer...
  9. 老生长谈的$.extend()方法
  10. centos 7 安装pip
  11. 穷查理宝典_穷查理宝典
  12. 三步建立自己的电影网站 番外篇 (排除MacCMS10登录故障)
  13. 【Tableau server7.0_私人版本】Tableau Server Certified Associate(Tableau CA) 考前预备
  14. 如何拆分PDF文件?来看这两种方法
  15. 了解记录管理系统RMS
  16. 大龄程序员找工作,为什么这么难?
  17. 4.1.3. Operators
  18. Java中使用Protocol Buffer
  19. 抖音 iOS 工程架构演进
  20. 高盐废水处理工艺——料液精制与除杂

热门文章

  1. linux网络编程一:主机字节序与网络字节序的的判断
  2. 常考数据结构与算法:删除链表的倒数第n个节点
  3. 计算机网络:单播,多播
  4. spring27: bean装配-基于xml
  5. spring26-1: bean的实例方式
  6. MySQL数据库从windows迁移到linux
  7. 在一个table中动态添加一行或删除一行
  8. hive与hbase整合
  9. MFC检查透镜质量程序
  10. RHEL6.3配置文件共享(5) Samba服务之三