没有太多变化将MFC应用设置为最大分辨率

时间:2014-05-02 21:33:51

标签: c++ windows visual-c++ mfc

我有一个经常使用并运行良好的MFC应用程序,它已经成为客户工作的重要部分,停机时间根本不能容忍。 问题是硬件有变化,旧的显示器被液晶显示器取代,所以MFC应用程序不适合所有显示器的大小,有一种方法可以简单地改变MFC设置并重新编译而不需要太多代码更改触发一个漫长的测试 - 修复 - 测试周期。

我很乐意使用第三方工具作为这个需要固定分辨率的MFC应用程序的容器,并给我像虚拟监视器这样的滚动条

由于

1 个答案:

答案 0 :(得分:1)

没有代码更改的两个想法:

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

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

代码更改:

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

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