【问题标题】:Supporting different monitor resolutions支持不同的显示器分辨率
【发布时间】:2009-06-01 10:21:17
【问题描述】:

我有一个带有一些位图、对话框和菜单的 MFC 应用程序。目前它只支持一种显示器分辨率(1280x1024)。我计划为其添加不同的显示器分辨率支持。为此,我想我必须加载不同分辨率的位图、更改字体大小等。我的问题是,这些在典型的 Windows 应用程序中是如何处理的?他们是使用单个位图并根据显示器分辨率拉伸/收缩它,还是实际上在资源中有不同的位图集并根据分辨率动态加载它们?有什么标准的解决方案吗?

【问题讨论】:

    标签: c++ mfc multiple-monitors


    【解决方案1】:

    在过去,我使用了一张大图像并进行了相应的缩放。

    确保调整菜单和对话框的大小很棘手,但 CodeProject 上有一些帮助代码可以提供帮助。

    【讨论】:

      【解决方案2】:

      我会说使用具有不同分辨率的多种资源。虽然您可以动态缩放图标,但如果您在适当的图像编辑程序中调整它们的大小,它们可能看起来会更好。

      【讨论】:

        【解决方案3】:

        无论屏幕分辨率如何,菜单和工具栏图标通常都以相同的像素数显示。因此,随着分辨率的增加,菜单和工具栏占据的屏幕比例会越来越小。

        我认为没有任何标准方法可以处理涉及位图的不同分辨率。

        【讨论】:

          【解决方案4】:

          我还会确保您的应用程序适用于 Windows DPI 缩放。当在更高分辨率的显示器上运行而不是重新设计应用程序以满足特定分辨率时,这可能是一个更好的选择。

          【讨论】:

            【解决方案5】:

            缩放位图看起来很糟糕(让它们变大总是看起来很糟糕,让它们变小取决于来源)。如果可能的话,看看你是否可以将你的大位图组合成几个可以很好缩放的小位图。很多时候,制作一个可以很好地在一个方向上缩放的位图是相当容易的。例如,如果您想围绕某物制作一个框架,而不是使用一个位图,而是将其像井字棋盘一样切成 9 块。四个角部分保持原来的大小,顶部和底部部分水平拉伸,左右垂直,中心是两个方向(如果有的话)。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2013-05-18
              • 1970-01-01
              • 2014-12-13
              • 2021-06-19
              • 2013-04-07
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多