gpt4 book ai didi

winapi - win32 WM_NOTIFY 与 WM_COMMAND

转载 作者:行者123 更新时间:2023-12-05 00:58:55 28 4
gpt4 key购买 nike

这是一个用于控制win32 api中的消息的理论问题。

WM_COMMANDWM_NOTIFY 有什么区别?我们什么时候需要处理这些消息,什么时候选择忽略它们?

之所以产生这种疑问是因为这两个消息都是在用户与控件交互时发送的,并且都将相同的信息发送到事件类型的窗口过程,控件 Id 和控件句柄作为结构(在 WM_NOTIFY 的情况下是 LPNMHDR)或直接(在 WM_COMMAND 的情况下是控制的 LPARAM 句柄和 LOWORD (WPARAM))

由于所有这些相似之处,为什么我们仍然将两者一起使用而不是贬低一个?

最佳答案

出于向后兼容性的原因,我们同时使用两者。新控件倾向于使用 WM_NOTIFY(它的功能要强大得多),但是现有的控件会发送 WM_COMMAND,MS 不会改变这一点。

我说 WM_NOTIFY 功能更强大,因为它的 lParam 是 NMHDR *,如果 NMHDR 是 POD 类型(或现代 C++ 术语中的标准布局)的第一个成员,那么您可以将 lParam 转换为实际类型发送的控制。 WM_COMMAND 所能提供的只是命令代码和窗口句柄。

至于何时处理它们,这完全是一个需要的问题,如果您需要处理特定控件的一部分上的特定操作,则您处理消息,否则您不处理。

关于winapi - win32 WM_NOTIFY 与 WM_COMMAND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55765995/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com