【问题标题】:Retrieve window position of maximized minimized window检索最大化最小化窗口的窗口位置
【发布时间】:2012-07-20 22:25:14
【问题描述】:

考虑这种情况:

  • 在多显示器系统上,
  • 应用程序被最大化,然后最小化,
  • 在我的应用程序中,我有上述应用程序主窗口的 HWND

现在,我如何确定从最小化状态恢复时窗口将显示在哪个监视器上? GetWindowRect 和 GetWindowInfo 产生负值,并且显然对于所有监视器都是相同的。 GetWindowPlacement 在 rcNormalPosition 中提供了很好的值,但这些是应用程序在未最大化时返回的坐标,可能部分或全部在另一个监视器上。

【问题讨论】:

  • 这个我没试过,但是WINDOWPLACEMENT.ptMaxPosition不给你答案吗?
  • 不,那些负值与我从 GetWindowRect 和 GetWindowInfo 得到的负值相同
  • 负值并不意味着它们是错误值。虚拟桌面包含具有负坐标值的点。
  • 如果应用程序在任一监视器上时负值不同,我会尝试理解它们。由于它们在两台显示器上都相同,因此我认为我无法找到我正在搜索的内容。

标签: windows winapi


【解决方案1】:

尝试使用 rcNormalPositionMONITOR_DEFAULTTONEAREST 标志的 MonitorFromRect 函数。之后 - 致电GetMonitorInfo 确定工作监控区域。

【讨论】:

  • 仍有可能 rcNormalPosition(窗口取消最小化时的坐标)在另一台显示器上,而不是当前最大化的显示器,但默认情况下它应该已经最大化到显示器的大部分窗户是开着的,所以我会接受这个答案。
猜你喜欢
  • 2015-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-29
  • 2012-02-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多