我正在尝试通过GetSystemMetrics获取主监视器的宽度和高度。但是,调用:

GetSystemMetrics(SM_CYVIRTUALSCREEN)

返回的值为1018,而不是实际的垂直分辨率1080

现在,我以为可能我误解了文档,所以我尝试致电
SystemParametersInfo(SPI_GETWORKAREA)

看看那是否真的是全屏显示的那个。但是,它按照说明进行操作,并返回屏幕的工作区域(total_height-taskbar_height)。在我的情况下是1040像素(1080-40(任务栏高度))。

所以,我有些困惑。 1018来自哪里?是什么导致它偏离62像素?

最佳答案

GetSystemMetrics(SM_CYSCREEN)应该可以完成这项工作。

按照MSDN,这等于GetDeviceCaps(hdcPrimaryMonitor, VERTRES),这可能是您真正想要的。

10-04 21:15