带有 CN 和 WM 前缀的消息之间的区别
Difference between messages with CN and WM prefixes
在查看Delphi 源代码时,我经常看到来自Windows API 的消息声明,例如CN_NOTIFY
和WM_NOTIFY
。我想知道它们之间的区别以及它们应该在什么时候使用?
WM
消息由 Win32 API 和最终用户代码使用。
CM
和 CN
消息由 VCL 内部使用。
当 VCL 处理来自 Win32 API 的某些 WM
通知时,例如 WM_COMMAND
和 WM_NOTIFY
,它们从 child 控件发送到它的 parent window,VCL 将它们作为 CN
消息(CN_COMMAND
和 CN_NOTIFY
)反映回发送它们的 child。这允许 VCL 控件处理它们自己的通知。
在查看Delphi 源代码时,我经常看到来自Windows API 的消息声明,例如CN_NOTIFY
和WM_NOTIFY
。我想知道它们之间的区别以及它们应该在什么时候使用?
WM
消息由 Win32 API 和最终用户代码使用。
CM
和 CN
消息由 VCL 内部使用。
当 VCL 处理来自 Win32 API 的某些 WM
通知时,例如 WM_COMMAND
和 WM_NOTIFY
,它们从 child 控件发送到它的 parent window,VCL 将它们作为 CN
消息(CN_COMMAND
和 CN_NOTIFY
)反映回发送它们的 child。这允许 VCL 控件处理它们自己的通知。