ON_NOTIFY与WM_NOTIFY消息如何改写成一个长尾词?
- 内容介绍
- 相关推荐
本文共计1416个文字,预计阅读时间需要6分钟。
Windows 3.x下,通知消息包括鼠标点击、内容修改、事件选择、背景绘制等,发送至父窗口处理。简单通知通过WM_COMMAND消息发送,wParam参数存储通知内容。
Windows 3.x下的通知消息
在windows 3.x下,控件将诸如鼠标点击、内容修改、选择事件、背景绘制等通知消息发送给父窗口处理。简单的通知消息以WM_COMMAND消息发送,并在wParam参数中存放通知码(如BN_CLICKED)和控件ID,在lParam参数中存放控件句柄。因为wParam与lParam都被使用了,也就没得办法去传递额外的数据。简单的通知消息也有传递额外数据的需求,举个例子,点击事件BN_CLICKED发生时,没有办法去传递鼠标当前的位置信息。
在windows 3.x下,解决上述不能传递额外数据的方法就是定义更多特殊目的的消息,如WM_CTLCOLOR、WM_VSCROLL、WM_HSCROLL、WM_DRAWITEM、WM_MEASUREITEM、WM_COMPAREITEM、WM_DELETEITEM、WM_CHARTOITEM、WM_VKEYTOITEM等等。这些消息可以反射回给控件自己处理,之后由另外一篇译文来介绍这项技术。
Win32下的通知消息
为了兼容存在于Windows 3.1中的诸多控件,Win32 API继续使用了Windows 3.x下的很多通知消息。Win32也为Windows 3.x下支持的控件增加了许多更精细、更复杂的控件(增强版),这些控件在发送通知时,往往需要传递额外的数据。Win32 API的设计者们觉得原来那种增加形如WM_*的Windows消息来解决问题的方式不可取,故设计了一种新的方案,只用一个WM_NOTIFY,这个消息可以传递大量数据。
本文共计1416个文字,预计阅读时间需要6分钟。
Windows 3.x下,通知消息包括鼠标点击、内容修改、事件选择、背景绘制等,发送至父窗口处理。简单通知通过WM_COMMAND消息发送,wParam参数存储通知内容。
Windows 3.x下的通知消息
在windows 3.x下,控件将诸如鼠标点击、内容修改、选择事件、背景绘制等通知消息发送给父窗口处理。简单的通知消息以WM_COMMAND消息发送,并在wParam参数中存放通知码(如BN_CLICKED)和控件ID,在lParam参数中存放控件句柄。因为wParam与lParam都被使用了,也就没得办法去传递额外的数据。简单的通知消息也有传递额外数据的需求,举个例子,点击事件BN_CLICKED发生时,没有办法去传递鼠标当前的位置信息。
在windows 3.x下,解决上述不能传递额外数据的方法就是定义更多特殊目的的消息,如WM_CTLCOLOR、WM_VSCROLL、WM_HSCROLL、WM_DRAWITEM、WM_MEASUREITEM、WM_COMPAREITEM、WM_DELETEITEM、WM_CHARTOITEM、WM_VKEYTOITEM等等。这些消息可以反射回给控件自己处理,之后由另外一篇译文来介绍这项技术。
Win32下的通知消息
为了兼容存在于Windows 3.1中的诸多控件,Win32 API继续使用了Windows 3.x下的很多通知消息。Win32也为Windows 3.x下支持的控件增加了许多更精细、更复杂的控件(增强版),这些控件在发送通知时,往往需要传递额外的数据。Win32 API的设计者们觉得原来那种增加形如WM_*的Windows消息来解决问题的方式不可取,故设计了一种新的方案,只用一个WM_NOTIFY,这个消息可以传递大量数据。

