WM_PARENTNOTIFY 消息

当后代窗口发生重大操作时,发送到窗口。 此消息现已经过扩展,包含 WM_POINTERDOWN 事件。 创建子窗口时,系统会在创建窗口的 CreateWindowCreateWindowEx 函数之前发送 WM_PARENTNOTIFY 在销毁子窗口时,系统会在进行任何处理来销毁窗口之前发送消息。

窗口通过其 WindowProc 函数接收此消息。

![重要提示]
桌面应用应注意 DPI。 如果应用无法识别 DPI,则指针消息中包含的屏幕坐标和相关结构可能会由于 DPI 虚拟化而显示不准确。 DPI 虚拟化为不识别 DPI 且默认处于活动状态的应用程序提供自动缩放支持(用户可以将其关闭)。 有关详细信息,请参阅编写高 DPI Win32 应用程序

#define WM_PARENTNOTIFY             0x0210

参数

wParam

wParam 的低序字指定要为其通知父级的事件。 高序字的值由低序字的值决定。 此参数的取值可为下列值之一。

LOWORD(wParam) 含义
WM_CREATE
0x0001
即将创建子窗口。
HIWORD(wParam) 是子窗口的标识符。
lParam 是子窗口的句柄。
WM_DESTROY
0x0002
即将销毁子窗口。
HIWORD(wParam) 是子窗口的标识符。
lParam 是子窗口的句柄。
WM_LBUTTONDOWN
0x0201
用户已将光标置于子窗口上,并且已单击鼠标左键。
HIWORD(wParam) 未定义。
lParam 的光标 x 坐标是低序字,光标的 y 坐标是高序字。
WM_MBUTTONDOWN
0x0207
用户已将光标置于子窗口上,并且已单击鼠标中间键。
HIWORD(wParam) 未定义。
lParam 的光标 x 坐标是低序字,光标的 y 坐标是高序字。
WM_RBUTTONDOWN
0x0204
用户已将光标置于子窗口上,并且已单击鼠标右键。
HIWORD(wParam) 未定义。
lParam 的光标 x 坐标是低序字,光标的 y 坐标是高序字。
WM_XBUTTONDOWN
0x020B
用户已将光标置于子窗口上,并且已单击第一个或第二个 X 按钮。
HIWORD(wParam) 指示按下了哪个按钮。 此参数的取值可为下列值之一:XBUTTON1 或 XBUTTON2。
lParam 的光标 x 坐标是低序字,光标的 y 坐标是高序字。
WM_POINTERDOWN
0x0246
指针已与子窗口连接。
HIWORD(wParam) 包含生成 WM_POINTERDOWN 事件的指针的标识符。

lParam

包含指针的点位置。

注意

由于指针可能通过非普通区域与设备联系,因此,此点位置可能是更复杂的指针区域的简化。 尽可能使用完整的指针区域信息,而不是点位置。

使用以下宏检索点的物理屏幕坐标。

返回值

如果应用程序处理此消息,它返回零。

如果应用程序未处理此消息,则调用 DefWindowProc

注解

此消息还会发送到子窗口的所有上级窗口(包括顶级窗口)。

除具有 WS_EX_NOPARENTNOTIFY 扩展窗口样式的窗口外,所有子窗口都会将此消息发送到其父窗口。 默认情况下,对话框中的子窗口具有 WS_EX_NOPARENTNOTIFY 样式,除非调用 CreateWindowEx 函数来创建没有此样式的子窗口。

此通知为子窗口的上级窗口提供了检查指针信息的机会,如果需要,可以使用指针捕获函数来捕获指针。

要求

要求
最低受支持的客户端
Windows 8 [仅限桌面应用]
最低受支持的服务器
Windows Server 2012 [仅限桌面应用]
标头
Winuser.h(包括 Windows.h)

另请参阅

消息

CreateWindow

CreateWindowEx

HIWORD

LOWORD

WM_CREATE

WM_DESTROY

WM_LBUTTONDOWN

WM_MBUTTONDOWN

WM_RBUTTONDOWN

WM_XBUTTONDOWN