WM_PARENTNOTIFY 消息
当后代窗口发生重大操作时,发送到窗口。 此消息现已经过扩展,包含 WM_POINTERDOWN 事件。 创建子窗口时,系统会在创建窗口的 CreateWindow 或 CreateWindowEx 函数之前发送 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
-
包含指针的点位置。
注意
由于指针可能通过非普通区域与设备联系,因此,此点位置可能是更复杂的指针区域的简化。 尽可能使用完整的指针区域信息,而不是点位置。
使用以下宏检索点的物理屏幕坐标。
- GET_X_LPARAM(lParam):x(水平点)坐标。
- GET_Y_LPARAM(lParam):y(垂直点)坐标。
返回值
如果应用程序处理此消息,它返回零。
如果应用程序未处理此消息,则调用 DefWindowProc。
注解
此消息还会发送到子窗口的所有上级窗口(包括顶级窗口)。
除具有 WS_EX_NOPARENTNOTIFY 扩展窗口样式的窗口外,所有子窗口都会将此消息发送到其父窗口。 默认情况下,对话框中的子窗口具有 WS_EX_NOPARENTNOTIFY 样式,除非调用 CreateWindowEx 函数来创建没有此样式的子窗口。
此通知为子窗口的上级窗口提供了检查指针信息的机会,如果需要,可以使用指针捕获函数来捕获指针。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 8 [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2012 [仅限桌面应用] |
标头 |
|