原文链接 -> 传送门
函数功能:
SetParent 函数用于改变指定子窗口的父窗口。
API 函数原型:
注释:_In_ 说明该参数是输入的,_opt_ 说明该参数是可选的。
HWND WINAPI SetParent( _In_ HWND hWndChild, _In_opt_ HWND hWndNewParent );
参数解析:
|
参数 |
含义 |
|
hWndChild |
指定子窗口的句柄 |
|
hWndNewParent |
1. 指定新的父窗口的句柄 |
返回值:
1. 如果函数调用成功,则返回值为前一个父窗口的句柄;
2. 如果函数调用失败,则返回值为 NULL。
获取有关错误的更多信息,请调用 GetLastError 函数。
备注:
1. 应用程序可以使用 SetParent 函数给弹出式窗口,层叠窗口或子窗口设置父窗口。
2. 如果 hWndChild 参数标识的窗口是可见的,系统将执行适当的重绘和刷新动作。
3. 由于兼容性的原因,SetParent 函数并不会改变子窗口的 WS_CHILD 或 WS_POPUP 窗口风格。因此,如果 hWndNewParent 参数为 NULL,你应该在调用 SetParent 函数之后清空 WS_CHILD 位并设置 WS_POPUP 风格。相反的,如果 hWndNewParent 参数不为 NULL,并且在此之前窗口是桌面窗口的子窗口,你应该在调用 SetParent 函数之前清空 WS_POPUP 风格并设置 WS_CHILD 风格。
4. 当你改变一个窗口的父窗口时,你应该同步子窗口和父窗口的 UISTATE。更多信息,请参见 WM_CHANGEUISTATE 消息和 WM_UPDATEUISTATE 消息说明。
需求:
|
Minimum supported client |
Windows 2000 专业版 [桌面应用程序] |
|
Minimum supported server |
Windows 2000 服务器版 [桌面应用程序] |
|
Header |
Winuser.h(包含于 Windows.h) |
|
Library |
User32.lib |
|
DLL |
User32.dll |




