windowPLACEMENT 结构 (winuser.h)

包含有关窗口在屏幕上的位置的信息。

语法

typedef struct tagWINDOWPLACEMENT {
  UINT  length;
  UINT  flags;
  UINT  showCmd;
  POINT ptMinPosition;
  POINT ptMaxPosition;
  RECT  rcNormalPosition;
  RECT  rcDevice;
} WINDOWPLACEMENT;

成员

length

类型: UINT

结构的长度(以字节为单位)。 在调用 GetWindowPlacementSetWindowPlacement 函数之前,请将此成员设置为 sizeof(WINDOWPLACEMENT)

如果未正确设置此成员,则 GetWindowPlacementSetWindowPlacement 将失败。

flags

类型: UINT

控制最小化窗口的位置以及还原窗口的方法的标志。 此成员可以是以下一个或多个值。

Value 含义
WPF_ASYNCWINDOWPLACEMENT
0x0004
如果调用线程和拥有窗口的线程附加到不同的输入队列,则系统会将请求发布到拥有窗口的线程。 这可以防止调用线程阻止其执行,而其他线程处理请求。
WPF_RESTORETOMAXIMIZED
0x0002
无论还原的窗口在最小化之前是否最大化,都将最大化还原的窗口。 此设置仅在下次还原窗口时有效。 它不会更改默认还原行为。

仅当为 showCmd 成员指定了SW_SHOWMINIMIZED值时,此标志才有效。

WPF_SETMINPOSITION
0x0001
可以指定最小化窗口的坐标。

如果在 ptMinPosition 成员中设置了坐标,则必须指定此标志。

showCmd

类型: UINT

窗口的当前显示状态。 它可以是在 ShowWindow 函数的 nCmdShow 参数中指定的任何值。

ptMinPosition

类型: POINT

窗口最小化时窗口左上角的坐标。

ptMaxPosition

类型: POINT

窗口最大化时窗口左上角的坐标。

rcNormalPosition

类型: RECT

窗口处于还原位置时的窗口坐标。

rcDevice

备注

如果窗口是没有 WS_EX_TOOLWINDOW 窗口样式的顶级窗口,则由以下成员表示的坐标位于工作区坐标中: ptMinPositionptMaxPositionrcNormalPosition。 否则,这些成员位于屏幕坐标中。

工作区坐标与屏幕坐标的不同之处在于,它们考虑应用程序工具栏的位置和大小 (包括任务栏) 。 工作区坐标 (0,0) 是工作区区域的左上角,即应用程序工具栏未使用的屏幕区域。

WINDOWPLACEMENT 结构中使用的坐标只能由 GetWindowPlacementSetWindowPlacement 函数使用。 将工作区坐标传递给预期屏幕坐标 (的函数(如 SetWindowPos) )将导致窗口出现在错误的位置。 例如,如果任务栏位于屏幕顶部,则使用 GetWindowPlacement 保存窗口坐标并使用 SetWindowPos 还原窗口坐标会导致窗口显示为“爬行”屏幕。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
标头 winuser.h (包括 Windows.h)

请参阅

概念性

GetWindowPlacement

矩形

引用

SetWindowPlacement

SetWindowPos

ShowWindow

Windows