2009-06-01 111 views
3

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

回答

2

在过去,我已经使用了一个大的图像,并相应地缩放。

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

1

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

1

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

我不认为有任何标准的方式处理不同的分辨率位图的决议。

1

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

0

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