如何在MSDN Windows中获取HMONITOR信息?

时间:2015-09-23 20:49:19

标签: c++ winapi directx

我需要做的是将主监视器的句柄传递给Windows中的DXGI_OUTPUT_DESC structure,这样即使连接了多个监视器,DesktopCoordinates的RECT也只有主监视器维度。

以下是DXGI_OUTPUT_DESC的结构:

typedef struct DXGI_OUTPUT_DESC {
  WCHAR              DeviceName[32];
  RECT               DesktopCoordinates;
  BOOL               AttachedToDesktop;
  DXGI_MODE_ROTATION Rotation;
  HMONITOR           Monitor;
} DXGI_OUTPUT_DESC;

但是,我引用了MSDN目录中几乎所有具有HMONITOR参数的GetMonitorInfo函数,但它们都是 In ,并且它们都没有将Handle返回给监视器。

所以基本上我的问题是我使用什么函数或命令,以便返回主监视器的句柄,然后我可以在DXGI_OUTPUT_DESC中修改,以便修改DesktopCoordinates的RECT以匹配主监视器的维度。

这个问题显然适用于连接到系统的多台显示器,但我只需要主显示器的尺寸。

1 个答案:

答案 0 :(得分:3)

Raymond Chen给出答案ZRANGEBYSCORE

这是最重要的部分:

  

根据定义,主监视器的左上角为(0,0)。因此,您可以使用此功能:

HMONITOR GetPrimaryMonitorHandle()
{
    const POINT ptZero = { 0, 0 };
    return MonitorFromPoint(ptZero, MONITOR_DEFAULTTOPRIMARY);
}