ValidateRect-通过从指定窗口的更新区域中删除矩形来验证矩形内的客户区

平台 SDK: Windows GDI

ValidateRect

ValidateRect函数通过从指定窗口的更新区域中删除矩形来验证矩形内的客户区。

BOOL ValidateRect(
  HWND hWnd,          // 窗口句柄
  CONST RECT *lpRect  // 验证矩形坐标
);

参数

  • hWnd

  • [in] 更新区域将被修改的窗口句柄。 如果此参数为NULL,则系统将无效并重新绘制所有窗口,并在函数返回之前将WM_ERASEBKGND和WM_NCPAINT消息发送到窗口过程。

  • lpRect

  • [in] 指向RECT结构的指针,该结构包含要从更新区域移除的矩形的客户端坐标。 如果此参数为NULL,则会删除整个客户区。

返回值

如果函数成功,返回值为非零。

如果函数失败,返回值为零。

Windows NT/2000/XP: 要获得扩展的错误信息,请调用GetLastError。

备注

BeginPaint函数自动验证整个客户区。 如果在生成下一条WM_PAINT消息之前必须验证更新区域的一部分,则不应调用ValidateRect和ValidateRgn函数。

系统继续生成WM_PAINT消息,直到当前更新区域被验证。

要求

  Windows NT/2000/XP: 包含在Windows NT 3.1和更高版本中。

  Windows 95/98/Me: 包含在Windows 95和更高版本中。

  头文件: 声明于 Winuser.h; 包含于 Windows.h.
  库: 使用 User32.lib.


TileWindows-将指定的父窗口的指定子窗口进行拼贴

平台 SDK: Windows 用户接口

TileWindows

TileWindows函数将指定的父窗口的指定子窗口进行拼贴。

WORD TileWindows(
  HWND hwndParent,     // 父窗口句柄
  UINT wHow,           // 平铺选项
  CONST RECT *lpRect,  // 客户区
  UINT cKids,          // 要安排的窗口数量
  const HWND *lpKids   // 窗口句柄数组
);

参数

  • hwndParent

  • [in] 父窗口句柄。 如果此参数为NULL,则假定桌面窗口。

  • wHow

  • [in] 指定平铺标志。 此参数可以是以下值之一 - 可选地与MDITILE_SKIPDISABLED结合使用,以防止禁用MDI子窗口平铺。

    含义
    MDITILE_HORIZONTAL水平平铺窗口。
    MDITILE_VERTICAL垂直的平铺窗口。


  • lpRect

  • [in] 指向RECT结构的指针,用于指定窗口排列在其中的客户端坐标中的矩形区域。 如果此参数为NULL,则使用父窗口的客户区。

  • cKids

  • [in] 指定由lpKids参数指定的数组中元素的数量。 如果lpKids为NULL,则忽略此参数。

  • lpKids

  • [in] 指向要排列的子窗口的一系列句柄的指针。 如果此参数为NULL,则会安排指定的父窗口(或桌面窗口)的所有子窗口。

返回值

如果函数成功,返回值是排列的窗口数量。

如果函数失败,返回值为零。 要获得扩展的错误信息,请调用GetLastError。

备注

调用TileWindows会使所有最大化的窗口恢复到以前的大小。

要求

  Windows NT/2000/XP: 包含在Windows NT 3.1和更高版本中。

  Windows 95/98/Me: 包含在Windows 95和更高版本中。

  头文件: 声明于 Winuser.h; 包含于 Windows.h.
  库: 使用 User32.lib.


ShowWindowAsync-设置由不同线程创建的窗口的显示状态

平台 SDK: Windows 用户接口

ShowWindowAsync

ShowWindowAsync函数设置由不同线程创建的窗口的显示状态。

BOOL ShowWindowAsync(
  HWND hWnd,    // 窗口句柄
  int nCmdShow  // 显示状态
);

参数

  • hWnd

  • [in] 窗口句柄。

  • nCmdShow

  • [in] 指定如何显示窗口。 有关可能值的列表,请参阅ShowWindow函数的说明。

返回值

如果窗口先前可见,则返回值不为零。

如果窗口先前被隐藏,则返回值为零。

备注

此函数将show-window事件发布到给定窗口的消息队列中。 应用程序可以使用此函数避免在等待挂起的应用程序完成处理显示窗口事件时挂起。

要求

  Windows NT/2000/XP: 包含在Windows NT 4.0和更高版本中。

  Windows 95/98/Me: 包含在Windows 95和更高版本中。

  头文件: 声明于 Winuser.h; 包含于 Windows.h.
  库: 使用 User32.lib.


ShowWindow-设置指定窗口的显示状态

平台  SDK: Windows 用户接口

ShowWindow

ShowWindow函数设置指定窗口的显示状态。

BOOL ShowWindow(
  HWND hWnd,     // 窗口句柄
  int nCmdShow   // 显示状态
);

参数

  • hWnd

  • [in] 窗口句柄。

  • nCmdShow

  • [in] 指定如何显示窗口。 如果启动应用程序的程序提供了STARTUPINFO结构,则应用程序第一次调用ShowWindow时忽略此参数。 否则,第一次调用ShowWindow时,该值应该是WinMain函数在其nCmdShow参数中获取的值。 在随后的调用中,此参数可以是以下值之一。

    含义
    SW_FORCEMINIMIZEWindows 2000/XP: 即使拥有该窗口的线程被挂起,也可以最小化窗口。 只有在最小化来自不同线程的窗口时才应使用此标志。
    SW_HIDE隐藏窗口并激活另一个窗口。
    SW_MAXIMIZE最大化指定的窗口。
    SW_MINIMIZE最小化指定的窗口并按Z顺序激活下一个顶层窗口。
    SW_RESTORE激活并显示窗口。 如果窗口被最小化或最大化,则系统将其恢复到其原始大小和位置。 应用程序应该在恢复最小化窗口时指定此标志。
    SW_SHOW激活窗口并以当前的大小和位置显示它。
    SW_SHOWDEFAULT根据启动应用程序的程序传递给CreateProcess函数的STARTUPINFO结构中指定的SW_值设置显示状态。
    SW_SHOWMAXIMIZED激活窗口并将其显示为最大化窗口。
    SW_SHOWMINIMIZED激活窗口并将其显示为最小化窗口。
    SW_SHOWMINNOACTIVE将窗口显示为最小化窗口。

    该值与SW_SHOWMINIMIZED类似,但窗口未激活。

    SW_SHOWNA以当前大小和位置显示窗口。

    该值与SW_SHOW类似,只是窗口未激活。

    SW_SHOWNOACTIVATE以最近的大小和位置显示一个窗口。

    该值与SW_SHOWNORMAL类似,但窗口未激活。

    SW_SHOWNORMAL激活并显示一个窗口。 如果窗口被最小化或最大化,则系统将其恢复到其原始大小和位置。 应用程序应该在第一次显示窗口时指定此标志。


返回值

如果该窗口先前可见,则返回值不为零。

如果窗口先前被隐藏,则返回值为零。

备注

应用程序第一次调用ShowWindow时,它应该使用WinMain函数的nCmdShow参数作为它的nCmdShow参数。 随后对ShowWindow的调用必须使用给定列表中的一个值,而不是由WinMain函数的nCmdShow参数指定的值。

如讨论nCmdShow参数所述,如果启动应用程序的程序在STARTUPINFO结构中指定启动信息,则在第一次调用ShowWindow时,nCmdShow值将被忽略。 在这种情况下,ShowWindow使用STARTUPINFO结构中指定的信息来显示窗口。 在后续调用中,应用程序必须调用ShowWindow,并将nCmdShow设置为SW_SHOWDEFAULT以使用启动应用程序的程序提供的启动信息。 此行为是为以下情况设计的:

  • 应用程序通过调用带有WS_VISIBLE标志的CreateWindow来创建其主窗口。

  • 应用程序通过调用带有WS_VISIBLE标志的CreateWindow来创建其主窗口,然后调用ShowWindow并设置SW_SHOW标志使其可见。

示例代码

有关示例,请参阅创建主窗口。

要求

  Windows NT/2000/XP: 包含在Windows NT 3.1和更高版本中。

  Windows 95/98/Me: 包含在Windows 95和更高版本中。

  头文件: 声明于 Winuser.h; 包含于 Windows.h.
  库: 使用 User32.lib.


SubtractRect-确定通过从另一个矩形中减去一个矩形形成的矩形的坐标

平台 SDK: Windows GDI

SubtractRect

SubtractRect函数确定通过从另一个矩形中减去一个矩形形成的矩形的坐标。

BOOL SubtractRect(
  LPRECT lprcDst,        // 目标矩形
  CONST RECT *lprcSrc1,  // 第一个矩形
  CONST RECT *lprcSrc2   // 第二个矩形
);

参数

  • lprcDst

  • [out] 指向RECT结构的指针,该结构接收通过从lprcSrc1指向的矩形减去lprcSrc2指向的矩形而确定的矩形的坐标。

  • lprcSrc1

  • [in] 指向函数减去lprcSrc2指向的矩形的RECT结构的指针。

  • lprcSrc2

  • [in] 指向该函数从lprcSrc1指向的矩形中减去的RECT结构的指针。

返回值

如果函数成功,返回值为非零。

如果函数失败,返回值为零。

Windows NT/2000/XP: 要获得扩展的错误信息,请调用GetLastError。

备注

当矩形在x方向或y方向完全相交时,该函数仅从由lprcSrc1指定的矩形中减去由lprcSrc2指定的矩形。 例如,如果* lprcSrc1的坐标为(10,10,100,100),* lprcSrc2的坐标为(50,50,150,150),则函数将lprcDst指向的矩形的坐标设置为(10,10,100,100)。 如果* lprcSrc1具有坐标(10,10,100,100)并且* lprcSrc2具有坐标(50,10,150,150),但是该函数将lprcDst指向的矩形的坐标设置为(10,10,50,100)。

因为应用程序可以为不同目的使用矩形,所以矩形函数不使用明确的度量单位。 相反,所有的矩形坐标和尺寸都以有符号的逻辑值给出。 映射模式和使用矩形的函数决定了度量单位。

要求

  Windows NT/2000/XP: 包含在Windows NT 3.5和更高版本中。

  Windows 95/98/Me: 包含在Windows 95和更高版本中。

  头文件: 声明于 Winuser.h; 包含于 Windows.h.
  库: 使用 User32.lib.