我在这里发帖是因为有人知道为什么我的屏幕尺寸报告为 611 而不是 600?
GetSystemMetrics(SM_CYFULLSCREEN)
返回 611。我的上网本是 1024x600,所以我预期的是 600,而不是 611。
谷歌搜索 1024x611 也会出现惊人数量的结果。
我在这里发帖是因为有人知道为什么我的屏幕尺寸报告为 611 而不是 600?
GetSystemMetrics(SM_CYFULLSCREEN)
返回 611。我的上网本是 1024x600,所以我预期的是 600,而不是 611。
谷歌搜索 1024x611 也会出现惊人数量的结果。
SM_CXFULLSCREEN 和 SM_CYFULLSCREEN返回全屏窗口的大小,因此由于任务栏的原因,通常会小于您的屏幕大小:
主显示监视器上全屏窗口的客户区宽度,以像素为单位。要获取未被系统任务栏或应用程序桌面工具栏遮挡的屏幕部分的坐标,请使用 SPI_GETWORKAREA 值调用 SystemParametersInfo 函数。
将其与SystemParametersInfo 中的 SPI_GETWORKAREA为您的显示器返回的内容进行比较?或者你在控制面板中的显示设置是什么?
一个 1024x640 的屏幕将是真正的 16:10 比例,相当于大约 611 y 的可用桌面尺寸。
从其他论坛主题来看,似乎GetSystemMetrics(SM_CYFULLSCREEN)
并不总是返回预期的结果。它似乎被调整了,可能不是你想要的值。
尝试使用GetSystemMetrics(SM_CYSCREEN)
,它将返回您的主显示器的大小。
(另外,请注意有些人使用多个监视器:注意不要将您的应用程序限制在单个监视器上)