操作系统|关于Windows消息的分类和使用场景
关于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~MAXWORD): 注册消息
这个范围主要是通过RegisterWindowMessage注册的消息。需要注意的是,注册消息的实际数值可能会随着每次系统运行而不同,所以需要使用RegisterWindowMessage来获取实际的消息值。和上面的Windows类消息一样,开发者可能都会用到这个范围里的消息,所以操作系统不能清楚地知道应该如何解析这个消息,所以不会进行自动化列集。

文章图片
【来源:漫漫开发路】
【 操作系统|关于Windows消息的分类和使用场景】声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。 邮箱地址:newmedia@xxcb.cn
推荐阅读
- 陆丰市:南塘镇风险等级由中风险调整为低风险
- Windows|Windows 10 21H1新功能预览介绍
- 建议|关于人脉,老一辈人给了我三点建议,记住一半就够你混出个人样
- 智慧桐城|关于城区部分停车场限时免费开放的通知
- 操作系统|用意念“隔空打字”成为现实!华人团队发布大脑OS操作系统
- Windows|微软正在准备修复一个影响SSD寿命的Windows 10错误
- 石英手表|怎么选好第一款腕表
- Windows|微软重新发布KB4023057补丁 再次推动Windows 10更新
- 自治区新冠肺炎疫情防控工作指挥部关于调整乌鲁木齐市部分区(县)风险等级的公告
- Windows|Windows 10 2020年5月更新现已在24.1%的PC上运行
