分析与理解通知消息-WM_NOTIFY
来源:互联网 发布:淘宝买药流程审核通过 编辑:程序博客网 时间:2024/05/15 02:05
郑力群
前言
近来,有几个网友发妹儿问了我一些关于WM_NOTIFY通知消息的使用问题,为此,我写了这篇文章,将我对WM_NOTIFY消息的理解阐述如下,希望能对各位有所帮助。
引入WM_NOTIFY消息的原因
1、问题的提出:
在Windows3.x中,不存在WM_NOTIFY消息,控制子窗口的通知消息同菜单的命令消息及加速键消息一样,均使用WM_COMMAND来发送,此时,根据WM_COMMAND消息传递的做法,可知道含有如下的传递结构:
wParam high-order : Notify Code :(如TTN_NEEDTEXT)
wParam low-order : ControlID
lParam : ControlHandle
使用上述结构进行消息的传递时,如果一个通知消息有一些附加的消息需要发送时(如传递LVN_COLUMNCLICK时可能需要附加传送如点击的是那一列等信息),因为WM_COMMAND仅能传递如上的参数,故无法做到。
2、解决的方案
--Windows 3.x中的解决方案,为这些有附加消息传送要求的通知消息,为它们各自定义了许多特殊的消息。
以WM_DRAWITEM为例:
lParam参数成为指向DRAWITEMSTRUCT结构的指针,DRAWITEMSTRUCT结构如下:
typedef struct tagDRAWITEMSTRUCT {
UINT CtlType;
UINT CtlID;
UINT itemID;
UINT itemAction;
UINT itemState;
HWND hwndItem;
HDC hDC;
RECT rcItem;
ULONG_PTR itemData;
} DRAWITEMSTRUCT;
这样,就实现了附加参数的传递,类似的做法在Windows3.x中随处可见。
- 分析与理解通知消息-WM_NOTIFY
- 分析与理解通知消息-WM_NOTIFY
- 分析与理解通知消息-WM_NOTIFY
- 全面解读通知消息WM_NOTIFY
- WM_Notify与消息反射
- 详解Windows消息分类以及WM_COMMAND与WM_NOTIFY的区别,以及模拟发送控件通知消息
- 详解Windows消息分类以及WM_COMMAND与WM_NOTIFY的区别,以及模拟发送控件通知消息
- WM_NOTIFY消息流程实例分析
- 【消息反射】WM_NOTIFY与消息反射【总结】
- WM_NOTIFY消息
- WM_NOTIFY消息
- WM_NOTIFY消息
- WM_NOTIFY消息
- WM_NOTIFY消息
- WM_NOTIFY消息
- WM_NOTIFY消息
- WM_COMMAND,WM_NOTIFY等消息
- WM_COMMAND,WM_NOTIFY等消息
- ASP的技术特点与使用方法
- 功能强大的离线浏览器(1)
- 功能强大的离线浏览器(2)
- 功能强大的离线浏览器(3)
- 分析与理解消息反射机制
- 分析与理解通知消息-WM_NOTIFY
- “新快乐时光”祥解
- ”新快乐时光“再解
- Loading HTML content from a Stream
- c++辨析谈
- 目录横穿“(Ttaversal)”问题的解决办法
- 机场成了ASP
- 微软准备EXCHANGE2000的升级
- Lotus Domino在ASP应用中的优势