C++ GetSystemMetrics(SM\u CYVIRTUALSCREEN)返回不正确的高度?
我试图通过C++ GetSystemMetrics(SM\u CYVIRTUALSCREEN)返回不正确的高度?,c++,c,windows,C++,C,Windows,我试图通过GetSystemMetrics获取主监视器的宽度和高度。然而,呼吁: GetSystemMetrics(SM_CYVIRTUALSCREEN) 返回的值是1018,而不是实际的垂直分辨率,即1080 现在,我想我可能误解了医生,所以我试着打电话 SystemParametersInfo(SPI_GETWORKAREA) 看看这是否真的是一个给全屏。但是,它会按照它所描述的那样执行,并返回屏幕的工作区域(总高度-任务栏高度)。在我的例子中是1040像素(1080-40(任务
GetSystemMetrics
获取主监视器的宽度和高度。然而,呼吁:
GetSystemMetrics(SM_CYVIRTUALSCREEN)
返回的值是1018
,而不是实际的垂直分辨率,即1080
现在,我想我可能误解了医生,所以我试着打电话
SystemParametersInfo(SPI_GETWORKAREA)
看看这是否真的是一个给全屏。但是,它会按照它所描述的那样执行,并返回屏幕的工作区域(总高度-任务栏高度)。在我的例子中是1040像素(1080-40(任务栏高度))
所以,我有点不知所措。1018从哪里来?是什么导致它关闭了62像素 GetSystemMetrics(SM\u CYSCREEN)
应该完成这项工作
根据这一点,这相当于GetDeviceCaps(hdcPrimaryMonitor,VERTRES)
,这可能是您真正想要的。GetSystemMetrics(SM\u CYSCREEN)
应该完成这项工作
根据这等于
GetDeviceCaps(hdcPrimaryMonitor,VERTRES)
这可能是你真正想要的。你有多个屏幕吗?你可以尝试SM\u CYSCREEN
而不是SM\u CYVIRTUALSCREEN
在这里可以正常工作。你有多个屏幕吗?你可以尝试SM\u CYSCREEN
而不是SM\u CYVIRTUALSCREEN
在这里正常工作。Doh!浏览MSDN时错过了这一个。我希望他们能把相关的旗帜组合在一起!多谢了,多谢!浏览MSDN时错过了这一个。我希望他们能把相关的旗帜组合在一起!非常感谢。