windows - 使 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,但对早期版本的支持也会很好。
解决方案
一些显卡/驱动程序可以以您想要的分辨率渲染屏幕并将其缩放到显示分辨率,因此图像以 4k 渲染并缩小到 720p 分辨率,图标和文本变得非常小。这种技术称为虚拟分辨率。但它会影响您当前未为您的应用程序指定的所有屏幕。
一些游戏引擎也可以做到这一点,但我认为使用 winApi 没有一种简单的方法可以做到这一点,因为 winApi 与您的操作系统一起工作并尊重其大小和显示,您不能简单地为此窗口强制使用不同的分辨率.
推荐阅读
- bash - 如何从 bash 中的文本文件创建字典?
- gnuplot - 如何在 gnuplot 中将 ytics 设置为从负到正的比例
- javascript - 带有 Knex.js 的数据加载器
- php - Magento1.9 返回列表无效的实体类型
- java - JedisExhausedPoolException : 由于池已用尽,因此无法获取资源
- php - 使用 Laravel 和 Selenium 进行网页抓取
- gsm - 使用 GSM 调制解调器发送 HDLC 帧的问题
- javascript - 如何将纯javascript小部件添加到角度框架
- python - 如何在pysnmp-4.4.6版本中使用TCP传输
- css - (React-redux 前端开发)我应该使用 css 还是添加另一个框架?