我遇到了一个有趣的问题。至少在 Vista 中,当桌面 DPI 设置未设置为 100% 时,getSystemMetrics(SM_CXSCREEN) 返回的值不正确。例如,我在 1366x768 屏幕中尝试了 150%,getSystemMetrics() 返回 911 而不是 1366(和 1366 / 1.5 ~ 911)
根据 MSDN,getSystemMetrics(SM_CXSCREEN) 返回像素,所以我认为这个值不会受到 DPI 设置的影响——但确实如此。那么有没有更安全的方法来找出真实的、未缩放的屏幕分辨率?