无需太多更改即可将 MFC 应用程序设置为最大分辨率

Posted

技术标签:

【中文标题】无需太多更改即可将 MFC 应用程序设置为最大分辨率【英文标题】:without much change set MFC application to maximum resolution 【发布时间】:2014-05-02 21:33:50 【问题描述】:

我有一个经常使用且运行良好的 MFC 应用程序,它已成为客户端工作的重要组成部分,而且停机时间完全不能容忍。 问题是硬件发生了变化,旧显示器被 LCD 显示器取代,所以 MFC 应用程序不适合所有显示器的大小,有没有一种方法可以让我简单地更改 MFC 设置并重新编译而无需更改太多代码,因为那样会触发一个漫长的测试-修复-测试循环。

我很乐意使用第三方工具来充当这个需要固定分辨率的 MFC 应用程序的容器,并为我提供虚拟监视器等滚动条

谢谢

【问题讨论】:

什么样的窗户?对话框?使用标准窗口控件?自绘?什么映射模式? 【参考方案1】:

不改代码的两个思路:

1) 只需将桌面的分辨率设置为另一个值,使其与旧显示器上的分辨率相同。

2) 更改对话框资源中的字体大小。这将改变整个对话框的大小。

代码更改:

1) 在绘制到 CDC 之前,使用CDC::SetWorldTransform(const XFORM& rXform) 缩放 CDC。

2) 使用CDC::SetViewportExt(..),启用CreateWindow(..)中的滚动条,并通过使用CDC::SetViewportOrg(..)处理滚动事件来移动窗口的内容。

【讨论】:

实际上它有一些不包含任何字体但绘制矩形并在某些事件上改变颜色的小部件 嗯,好的。我不知道有任何工具可以在不更改代码的情况下做到这一点,抱歉。 在这种情况下,请提出一些影响最小的方法 @anonymous 我添加了两条建议。

以上是关于无需太多更改即可将 MFC 应用程序设置为最大分辨率的主要内容,如果未能解决你的问题,请参考以下文章

无需客户端浏览器即可将 HTML Canvas 保存为图像

无需指定环境变量/系统属性即可将 Spring Boot 配置拆分为多个属性文件的任何方法

无需 youtube 应用即可将 Youtube 视频集成到应用中

无需卡即可将图像分享到 Twitter

无需激活即可将数据从 Access 导出到 Excel2013

无需在浏览器中登录即可将视频上传到 youtube