以下是 HANDLE_WM_NOTIFY 宏的定义:
#define HANDLE_WM_NOTIFY(hwnd, wParam, lParam, fn) \
((fn)((hwnd), (int)(wParam), (NMHDR*)(lParam)), 0L)
这个宏的目的是简化在窗口过程中处理 WM_NOTIFY 消息时的代码。通过使用这个宏,可以将消息的处理委托给另一个函数,而不必在窗口过程中编写冗长的 switch 语句。
这里的参数解释如下:
- hwnd: 窗口句柄。
- wParam: 消息的 wParam 参数,通常包含控件的标识符。
- lParam: 消息的 lParam 参数,通常指向 NMHDR 结构。
示例用法:
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
switch (uMsg) {
// 其他消息处理...
case WM_NOTIFY:
return HANDLE_WM_NOTIFY(hwnd, wParam, lParam, OnNotify);
// 其他消息处理...
}
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
void OnNotify(HWND hwnd, int id, NMHDR* pnmhdr) {
// 在这里处理 WM_NOTIFY 消息
}
转载请注明出处:http://www.pingtaimeng.com/article/detail/24652/Win32 API/Commctrl.h/HANDLE_WM_NOTIFY