从Windows 95和Windows NT 3.51版开始 windows提供了很多新型空间
比如
动画 热键 列表视图 进度条 滑尺 选装按钮 标签 树形视图
这些新型空间的出现 WM_COMMAND消息通知已经不能完成任务了 因为
WM_COMMAND消息
wParam
The high-order word specifies the notification code if the message is from a control. If the message is from an accelerator, this value is 1. If the message is from a menu, this value is zero.
The low-order word specifies the identifier of the menu item, control, or accelerator.
lParam
Handle to the control sending the message if the message is from a control. Otherwise, this parameter is NULL.
显然已不能满足新型控件的需要了 因为这些新型控件往往还需要附加一些数据来描述控件的状态
所以WM_NOTIFY出现了 由此控件的通知消息由WM_COMMAND(经典控件依然使用)换成了WM_NOTIFY(主要用于新增控件)
关于WM_NOTIFY
WM_NOTIFY idCtrl = (int) wParam;
pnmh = (LPNMHDR) lParam;
lparam是个指向一个结构体的指针变量

本文详细介绍了Windows控件从WM_COMMAND到WM_NOTIFY消息通知的演变,以及WM_NOTIFY在处理新型控件通知中的作用。WM_NOTIFY消息涉及到的结构体NMHDR及其扩充结构,并通过例子解释了如何处理WM_NOTIFY消息,包括使用ON_NOTIFY宏和ON_NOTIFY_REFLECT宏进行消息映射。同时,讨论了消息反射与子类化的不同,以及在父子窗口中同时处理消息时的优先级问题。
最低0.47元/天 解锁文章
3228

被折叠的 条评论
为什么被折叠?



