zl程序教程

您现在的位置是:首页 >  系统

当前栏目

关于Windows消息的分类和使用场景

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~