如何设计640 * 480的对话框,可以在800 * 600分辨率下使用?

时间:2014-11-04 11:31:47

标签: mfc dialog

我应该设计一个尺寸为640 * 480的对话框,可以在800 * 600分辨率下使用。

目前我的对话框大小是411 * 292,看起来很明智,这本身看起来不错,但实际上我是 要求设计具有我上面提到的大小的对话框。我也试过了,但是那个对话框太过分了 比我之前的411 * 292大小的对话框。

在使用800 * 600分辨率时,或者我的对话框似乎更大,无法看到我的某些控件

这是我的对话框的大小,

IDD_DIALOG_MYPAGE DIALOGEX 0, 0, 411, 292

任何人都可以让我知道如何设计640 * 480(不应该更大)的对话框。 如何使我的应用程序适合任何分辨率,以便对话框上的所有控件都可见。

2 个答案:

答案 0 :(得分:0)

在对话框单元和对话框单元中缩放对话框,根据当前UI设置进行缩放,并取决于系统字体。因此,如果用户选择更大的UI表示,您的Dialog也会增长。

最好的建议1我可以给你:你自己控制所有你控制的大小。选择你喜欢的字体。将其设置为Control,计算新控件的位置并使用SetWindowPos / MoveWindow。

仅在这种情况下,您拥有完全控制权。

您也可以在Dialog资源中使用固定的字体大小,但此字体会根据为屏幕选择的DPI而缩放...

所以最好的建议2我可以给出:扩展DPI / UI设置并显示用户想要的大小的对话框,这就是普通对话框的作用......

答案 1 :(得分:0)

你正处在痛苦的世界里。如果我理解正确,则会要求您创建一个始终为640 * 480像素的对话框。似乎无论谁提出要求,自1995年以来都没有跟上UI的发展。“像素”在2014年毫无意义。首先,资源文件中的单位是“DLU”,“对话长度单位”。参见例如http://blogs.msdn.com/b/oldnewthing/archive/2004/02/17/74811.aspx和support.microsoft.com/kb/125681,对于一些有关如何将一个转换为另一个的初学者。但是,对于高DPI显示,这些方法是不够的。现在它不仅仅依赖于系统字体的大小,还取决于用户选择的设置,以便在各种监视器上显示“事物”的大小,是否完全区分监视器等。一个开始http://msdn.microsoft.com/en-us/library/windows/desktop/dn469266%28v=vs.85%29.aspx。但请注意,因为这些API有更新 - 例如Win7,Win8和Win8.1都有这方面的新功能。

所有这些当然对你没有帮助。制作适合640x480及以上的对话框并不是非常困难;只是让它尽可能小。但是这部分:“我怎样才能使我的应用程序适合任何分辨率,以便对话框上的所有控件都可见。”真的很难。 “任何”意味着“还小于640x480”吗?并且'适合'是否意味着它应该在更高分辨率下看起来“原生”?对话框应该可以调整大小吗?您可以选择上面的xMRi建议的简单而强大的方法,或者您将不得不询问编写您的规范的人是否更清楚他们想要什么,记住我上面列出的所有内容。