分辨率1024x611,为什么不是1024x600? (或者为什么SM_CYFULLSCREEN报告的高度略高=)

时间:2012-10-07 07:29:08

标签: winapi resolution

我在这里发帖是因为有人知道为什么我的屏幕尺寸被报告为611而不是600?

GetSystemMetrics(SM_CYFULLSCREEN)

返回611.我的上网本是1024x600,所以我预计600,而不是611。

对于1024x611的Google搜索,也会产生惊人数量的结果。

2 个答案:

答案 0 :(得分:1)

SM_CXFULLSCREEN and SM_CYFULLSCREEN返回全屏窗口的大小,因此任务栏通常会小于您的屏幕尺寸:

  

主节点上全屏窗口的客户区宽度   显示器,以像素为单位。获取部分的坐标   屏幕未被系统任务栏或屏幕遮挡   应用程序桌面工具栏,调用SystemParametersInfo函数   使用SPI_GETWORKAREA值。

将它与SPI_GETWORKAREA in SystemParametersInfo为您的显示器返回的内容进行比较?或者您在控制面板中设置的显示是什么?

1024x640的屏幕将是真正的16:10比例,并且相当于~611 y可用桌面尺寸。

答案 1 :(得分:1)

来自其他论坛帖子,似乎GetSystemMetrics(SM_CYFULLSCREEN)并不总是返回已删除的结果。它似乎有所调整,可能不是你想要的价值。

尝试使用GetSystemMetrics(SM_CYSCREEN),这将返回主监视器的大小。

(另请注意,有些人使用多台显示器:注意不要将应用程序限制在一台显示器上)