关于Windows消息的分类和使用场景
2023-09-14 09:10:45 时间
关于Windows消息的分类
在Windows开发中,我们经常会使用的自定义消息,关于这个消息的数值选取,还是有点讲究的,今天就来具体看看(免得又掉沟里了)。
Windows消息,可以分为如下几类:
0~0x3FF (WM_USER – 1): 系统消息
这类消息是被操作系统定义并使用的消息。我们尽量不要在这个范围内定义我们自己的消息,因为它们会被操作系统使用并识别消息的WPARAM和LPARAM参数,并将它们在多个进程之间列集(Marshal)。
0x400~0x7FFF (WM_USER~WM_APP – 1): Windows类消息
在这个范围内定义的消息主要被用在Windows类中。举个例子,WM_USER + 1这个消息,如果窗口是一个工具栏(toolbar)控件,则它表示TB_ENABLEBUTTON,如果窗口是一个工具提示(tooltip)控件,则它表示TTM_ACTIVATE,如果窗口是一个对话框,则这个消息表示DM_SETDEFID。如果你创建了你自己的自定义控件,那可能会表达的另一个完全不同的意思。因为开发者可能都会用到这个范围里的消息,所以操作系统不能清楚地知道应该如何解析这个消息,所以不会进行自动化列集。
0x8000~0xBFFF (WM_APP~MAXINTATOM – 1): 应用程序定义消息
这个范围内的消息是应用程序自己定义的。这个消息范围在Windows 95时期被创建,主要用来确保应用程序使用的自定义消息不会影响到将来Windows版本中的Windows类消息。和上面的Windows类消息一样,开发者可能都会用到这个范围里的消息,所以操作系统不能清楚地知道应该如何解析这个消息,所以不会进行自动化列集。
0xC000~0xFFFF (MAXINTATOM~
相关文章
- windows 8专业版下播放视频的神马情况?
- 通过cmd 使用 InstallUtil.exe 命令 操作 windows服务 Windows Service
- 【windows核心编程】系统消息与自定义钩子(Hook)使用
- Qt之进程间通信之Windows消息(nativeEvent)
- U盘安装Windows 7 + Ubuntu 14 双系统笔记
- Windows 由于无法验证发布者,windows阻止控件安装怎么办
- 第一个 Flutter Windows 桌面应用
- Oracle 11G R2 在windows server 2008 64位安装时提示:无法在windows "开始"菜单或桌面上创建项
- MFC Windows 程序设计[169]之托盘与气泡(附源码)
- MFC Windows 程序设计[233]之CPP十六进制编辑器(附源码)
- MFC Windows 程序设计[二十四]之windows目录展示(附源码)
- Windows bempp模块安装正确教程
- hadoop2.7.1 nutch2.3 二次开发windows环境
- 一种类似于windows消息映射的方式编程思想分析(NRF52832平台上运行)
- WINDOWS.H already included. MFC apps must not #include <Windows.h>
- Windows API一日一练(86)GetClipboardData函数
- VC++使用SDL定时器替代Windows窗口定时器消息(附源码)
- MemCache在Windows下环境的搭建及启动
- Windows Server 2008 R2下安装卸载Oracle 11g
- 【项目实战】Windows常用运行命令汇总
- Windows_01_Windows系统的中的32位和64位(System32和SysWOW64)
- windows程序消息机制(Winform界面更新有关)