GetWindow-检索具有指定窗口的指定关系(Z顺序或所有者)的窗口句柄
平台 SDK: Windows 用户接口 |
GetWindow
GetWindow函数检索具有指定窗口的指定关系(Z顺序或所有者)的窗口句柄。
HWND GetWindow( HWND hWnd, // 原始窗口句柄 UINT uCmd // 关系 );
参数
hWnd
[in] 窗口句柄。 根据uCmd参数的值,检索到的窗口句柄与此窗口有关。
uCmd
[in] 指定指定窗口与要检索句柄的窗口之间的关系。 该参数可以是以下值之一。
值 含义 GW_CHILD 如果指定的窗口是父窗口,则检索到的句柄标识Z顺序顶部的子窗口; 否则,检索到的句柄是NULL。 该功能仅检查指定窗口的子窗口。 它不检查后代窗口。 GW_ENABLEDPOPUP Windows 2000/XP: 检索到的句柄标识指定窗口拥有的已启用弹出窗口(搜索使用第一个使用GW_HWNDNEXT找到的窗口); 否则,如果没有启用弹出窗口,则检索到的句柄是指定窗口的句柄。 GW_HWNDFIRST 检索到的句柄标识Z顺序中最高的相同类型的窗口。 如果指定的窗口是最上面的窗口,则句柄标识Z顺序中最高的最上面的窗口。 如果指定的窗口是顶层窗口,则句柄将标识Z顺序中最高的顶层窗口。 如果指定的窗口是子窗口,则句柄标识Z顺序中最高的兄弟窗口。 GW_HWNDLAST 检索到的句柄标识Z顺序中最低的相同类型的窗口。 如果指定的窗口是最上面的窗口,则句柄标识Z顺序中最低的最上面的窗口。 如果指定的窗口是顶级窗口,则句柄将标识Z顺序中最低的顶级窗口。 如果指定的窗口是子窗口,则句柄标识Z顺序中最低的兄弟窗口。 GW_HWNDNEXT 检索到的句柄以Z顺序标识指定窗口下方的窗口。 如果指定的窗口是最上面的窗口,则句柄将标识指定窗口下方的最上面的窗口。 如果指定的窗口是顶层窗口,则句柄将标识指定窗口下方的顶层窗口。 如果指定的窗口是子窗口,则该句柄将标识指定窗口下方的同级窗口。 GW_HWNDPREV 检索到的句柄以Z顺序标识指定窗口上方的窗口。 如果指定的窗口是最上面的窗口,则句柄会标识指定窗口上方的最上面的窗口。 如果指定的窗口是顶层窗口,则句柄将标识指定窗口上方的顶层窗口。 如果指定的窗口是子窗口,则该句柄将识别指定窗口上方的同级窗口。 GW_OWNER 检索到的句柄标识指定窗口的所有者窗口(如果有的话)。 有关更多信息,请参阅拥有的Windows。
返回值
如果函数成功,返回值是一个窗口句柄。 如果没有与指定窗口存在指定关系的窗口,则返回值为NULL。 要获得扩展的错误信息,请调用GetLastError。
备注
EnumChildWindows函数比在循环中调用GetWindow更可靠。 调用GetWindow执行此任务的应用程序可能会陷入无限循环或引用已销毁窗口的句柄。
要求
Windows NT/2000/XP: 包含在Windows NT 3.1和更高版本中。
Windows 95/98/Me: 包含在Windows 95和更高版本中。
头文件: 声明于 Winuser.h; 包含于 Windows.h.
库: 使用 User32.lib.
GetUpdateRect-检索完全包围指定窗口的更新区域的最小矩形的坐标
平台 SDK: Windows GDI |
GetUpdateRect
GetUpdateRect函数检索完全包围指定窗口的更新区域的最小矩形的坐标。 GetUpdateRect以逻辑坐标检索矩形。 如果没有更新区域,GetUpdateRect将检索一个空矩形(将所有坐标设置为零)。
BOOL GetUpdateRect( HWND hWnd, // 窗口句柄 LPRECT lpRect, // 更新矩形坐标 BOOL bErase // 擦除状态 );
参数
hWnd
[in] 更新区域将被检索的窗口句柄。
lpRect
[out] 指向RECT结构的指针,该结构以设备单位接收包围矩形的坐标。
应用程序可以将此参数设置为NULL,以确定窗口是否存在更新区域。 如果此参数为NULL,则GetUpdateRect在存在更新区域时返回非零值,如果不存在,则返回零。 这提供了一种简单而有效的方法来确定WM_PAINT消息是否由无效区域产生。
bErase
[in] 指定是否要擦除更新区域中的背景。 如果此参数为TRUE且更新区域不为空,则GetUpdateRect会将WM_ERASEBKGND消息发送到指定的窗口以清除背景。
返回值
如果更新区域不为空,则返回值不为零。
如果没有更新区域,则返回值为零。
Windows NT/2000/XP: 要获得扩展的错误信息,请调用GetLastError。
备注
由BeginPaint函数检索的更新矩形与由GetUpdateRect检索的更新矩形相同。
BeginPaint会自动验证更新区域,所以在调用BeginPaint之后立即对GetUpdateRect进行的任何调用都将检索一个空的更新区域。
要求
Windows NT/2000/XP: 包含在Windows NT 3.1和更高版本中。
Windows 95/98/Me: 包含在Windows 95和更高版本中。
头文件: 声明于 Winuser.h; 包含于 Windows.h.
库: 使用 User32.lib.
GetTopWindow-检查与指定父窗口关联的子窗口的Z顺序,并检索Z顺序顶部子窗口的句柄
平台 SDK: Windows 用户接口 |
GetTopWindow
GetTopWindow函数检查与指定父窗口关联的子窗口的Z顺序,并检索Z顺序顶部子窗口的句柄。
HWND GetTopWindow( HWND hWnd // 父窗口句柄 );
参数
hWnd
[in] 要检查其子窗口的父窗口句柄。 如果此参数为NULL,则该函数返回Z顺序顶部窗口的句柄。
返回值
如果函数成功,则返回值是Z顺序顶部子窗口的句柄。 如果指定的窗口没有子窗口,则返回值为NULL。 要获得扩展的错误信息,请使用GetLastError函数。
要求
Windows NT/2000/XP: 包含在Windows NT 3.1和更高版本中。
Windows 95/98/Me: 包含在Windows 95和更高版本中。
头文件: 声明于 Winuser.h; 包含于 Windows.h.
库: 使用 User32.lib.
GetParent-检索指定窗口的父级或所有者的句柄
平台 SDK: Windows 用户接口 |
GetParent
GetParent函数检索指定窗口的父级或所有者的句柄。
要检索指定的祖先的句柄,请使用GetAncestor函数。
HWND GetParent( HWND hWnd // 子窗口句柄 );
参数
hWnd
[in] 将被检索的窗口的父窗口句柄。
返回值
如果该窗口是子窗口,则返回值是父窗口的句柄。 如果窗口是顶层窗口,则返回值是所有者窗口的句柄。 如果该窗口是顶级无主窗口或者该函数失败,则返回值为NULL。 要获得扩展的错误信息,请调用GetLastError。
备注
请注意,尽管有其名称,但此函数可以返回所有者窗口而不是父窗口。 要获取父窗口而不是所有者,请使用GetAncestor和GA_PARENT标志。
示例代码
有关示例,请参阅初始化对话框。
要求
Windows NT/2000/XP: 包含在Windows NT 3.1和更高版本中。
Windows 95/98/Me: 包含在Windows 95和更高版本中。
头文件: 声明于 Winuser.h; 包含于 Windows.h.
库: 使用 User32.lib.