支持不同的显示器分辨率

时间:2009-06-01 10:21:17

标签: c++ mfc multiple-monitors

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

5 个答案:

答案 0 :(得分:2)

过去我使用过一张大图像并相应缩放。

确保菜单和对话框调整大小很棘手,但CodeProject上有帮助代码可能会有所帮助。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

无论屏幕分辨率如何,菜单和工具栏图标通常都会以相同的像素数显示。因此,随着分辨率的提高,菜单和工具栏占据屏幕的一小部分。

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

答案 3 :(得分:1)

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

答案 4 :(得分:0)

缩放位图看起来很糟糕(使它们变大看起来总是很糟糕,使它们变小,取决于来源)。如果可能的话,看看你是否可以编写几个较小位图的大位图,这些位图可以很好地扩展。很多时候制作一个可以很好地在一个方向上缩放的位图是相当容易的。例如,如果你想围绕某个东西制作一个框架,而不是使用一个位图,就像一个井字板一样将它切成9块。四个角部保持原始尺寸,顶部和底部部分水平拉伸,左右垂直,中心朝两个方向(如果使用的话)。