有没有办法轮询显示设备的实际物理纵横比(甚至尺寸)(不是显示模式分辨率 - 屏幕本身)? ...尽管为显示器安装了正确的驱动程序,该方法仍能正常工作吗?我正在寻找适用于所有Win32平台的Win32 API调用。
答案 0 :(得分:0)
这是我能想到的最接近的,使用GetDeviceCaps()来确定与桌面DC对应的设备的宽高比。我代码中的一个片段......
HWND hDesktopWnd = GetDesktopWindow();
HDC hDC = GetDC(hDesktopWnd);
if(hDC != NULL)
{
float dw = (float)GetDeviceCaps(hDC, HORZSIZE);
float dh = (float)GetDeviceCaps(hDC, VERTSIZE);
ReleaseDC(hDesktopWnd, hDC);
// Equivalent of reducing a fraction
if(dw > dh)
{
dw /= dh;
dh = 1.0f;
}
else
{
dh /= dw;
dw = 1.0f;
}
wcp.fAspectNumerator = dw;
wcp.fAspectDenominator = dh;
}