【发布时间】:2020-03-08 12:04:58
【问题描述】:
在 Windows 设置中,更改显示器的分辨率通常会在不更改图形驱动程序的显示分辨率的情况下调整桌面大小,从而导致几乎瞬时的“模式切换”。
是否有可以触发此功能以切换桌面分辨率的 Windows API?使用 ChangeDisplaySettings 或 ChangeDisplaySettingsEx 会导致屏幕暂时空白,即使在图形驱动程序中设置了 GPU 缩放。
【问题讨论】:
-
你说的是 DPI 变化吗?
-
不,我说的是显示模式更改;如果我说从 1920x1080 到 1280x720,变化会立即发生,不会出现屏幕空白。
-
好像用
ChangeDisplaySettings改成1280x720,再用Windows设置改回1920x1080,也会瞬间黑屏。 -
这是因为 ChangeDisplaySettings 缩小了 GPU 的视频模式,Windows 必须重新展开它才能再次显示更高分辨率。当显示分辨率已经很高时,我注意到显示设置做了一些奇怪的魔法来降低桌面分辨率,而无需在驱动程序中执行模式切换。我仍然很好奇是否有 API 可以复制 Windows 设置的行为并执行软件“模式切换”。
标签: windows winapi video graphics gpu