我需要做的是将主监视器的句柄传递给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以匹配主监视器的维度。
这个问题显然适用于连接到系统的多台显示器,但我只需要主显示器的尺寸。
答案 0 :(得分:3)
Raymond Chen给出答案ZRANGEBYSCORE。
这是最重要的部分:
根据定义,主监视器的左上角为(0,0)。因此,您可以使用此功能:
HMONITOR GetPrimaryMonitorHandle() { const POINT ptZero = { 0, 0 }; return MonitorFromPoint(ptZero, MONITOR_DEFAULTTOPRIMARY); }