【问题标题】:Resolution 1024x611, why is it not 1024x600? (Or why does SM_CYFULLSCREEN report a slightly too large height=)分辨率1024x611,为什么不是1024x600? (或者为什么 SM_CYFULLSCREEN 报告高度略大=)
【发布时间】:2012-10-07 07:29:07
【问题描述】:

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

GetSystemMetrics(SM_CYFULLSCREEN)

返回 611。我的上网本是 1024x600,所以我希望是 600,而不是 611。

谷歌搜索 1024x611 的结果也令人惊讶。

【问题讨论】:

  • 也许您正在运行的系统的一些细节可能会有所帮助。这是上网本/平板电脑吗?
  • @CrazyCasta,是的,上网本,华硕。

标签: winapi resolution


【解决方案1】:

从其他论坛帖子来看,GetSystemMetrics(SM_CYFULLSCREEN) 似乎并不总是返回预期的结果。好像调整过了,可能不是你想要的值。

尝试使用GetSystemMetrics(SM_CYSCREEN),它将返回您的主显示器的大小。

(另外,请注意,有些人使用多个监视器:注意不要将您的应用程序限制在单个监视器上)

【讨论】:

  • 就是这样。知道 CYFULLSCREEN 破坏这个数字的原因会很有趣,但我很高兴它现在可以工作。 :-)
  • 我确实认为它只是代表其他东西:我不确定,但当您想让 客户区 全屏时,它可能是窗口所需的高度(虽然我没有什么可以支持的)。
【解决方案2】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-22
    相关资源
    最近更新 更多