首页 > 解决方案 > 使 Windows 7/8/10 渲染到与屏幕不同的区域

问题描述

假设您在运行 Windows 的笔记本电脑上有一个1280 x 720的屏幕。您几乎无法在屏幕上放置一个窗口。

是否有可能编写一个程序要求 Windows 将自身(我们正在谈论的工具栏、墙纸、所有内容)呈现到例如 RAM 中的3840 x 2160缓冲区(换句话说,RAM 中的虚拟 4k 屏幕有很多屏幕空间),然后读取此缓冲区,以某种方式使其全部或部分适合 1280 x 720 缓冲区,并将其显示在 1280 x 720 笔记本电脑屏幕上?

我之所以问,是因为我对使用这种技术的应用程序有一个想法,而且我对 Windows API 或图形系统的了解还不够,无法知道这种技术是否可行。我最关心的是 Windows 10,但对早期版本的支持也会很好。

标签: windowswinapi

解决方案


一些显卡/驱动程序可以以您想要的分辨率渲染屏幕并将其缩放到显示分辨率,因此图像以 4k 渲染并缩小到 720p 分辨率,图标和文本变得非常小。这种技术称为虚拟分辨率。但它会影响您当前未为您的应用程序指定的所有屏幕。

一些游戏引擎也可以做到这一点,但我认为使用 winApi 没有一种简单的方法可以做到这一点,因为 winApi 与您的操作系统一起工作并尊重其大小和显示,您不能简单地为此窗口强制使用不同的分辨率.


推荐阅读