支持不同的显示器分辨率。

3

我有一个MFC应用程序,其中包含一些位图、对话框和菜单。目前它只支持一个屏幕分辨率(1280x1024)。我计划为它添加不同的屏幕分辨率支持。为了做到这一点,我想我必须加载不同分辨率的位图,改变字体大小等。我的问题是,在典型的Windows应用程序中,这些是如何处理的?它们使用单个位图并根据监视器分辨率进行拉伸/缩小,还是实际上具有不同的位图集在资源中,并根据分辨率动态加载它们?是否有任何标准解决方案?

5个回答

2

过去我使用了一张大图片并按比例缩放。

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


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

1

通常情况下,菜单和工具栏图标在不同的屏幕分辨率下显示的像素数量相同。因此,随着分辨率的增加,菜单和工具栏在屏幕上所占比例会变小。

我认为在处理位图时,没有任何标准的处理不同分辨率的方法。


1
我还会确保您的应用程序与Windows DPI缩放配合使用。这可能是在高分辨率显示器上运行而无需重新设计应用程序以满足特定分辨率的更好选择。

0

缩放位图会看起来很糟糕(将它们变大总是会看起来很糟糕,将它们变小则有点取决于源)。如果可能的话,请尝试将您的大位图组合成几个可以良好缩放的小位图。很多时候,制作一个可以在一个方向上良好缩放的位图相当容易。例如,如果您想在某物周围制作一个框架,而不是使用一个位图,将其分割成九个像井字游戏一样的小块。四个角落的块保持其原始大小,顶部和底部的块水平拉伸,左侧和右侧垂直拉伸,中心块在两个方向上都进行拉伸(如果有使用的话)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接