3

我有一个 MFC 应用程序。在 Windows 7 上运行它时,我意识到将显示百分比更改为中等 - 125% 时,我有一个被截断的 TextControl(不会出现句末。)

我怎样才能解决这个问题?

我可以放大对话框上控件的大小,但我宁愿通过代码来做到这一点。我的应用程序已本地化,我不想更改每种语言的所有对话框。

4

2 回答 2

1

一般来说,问题在于绝对坐标被用于某些尺寸而不是相对坐标。该框架最初会在大 DPI 中正确布局,然后由您决定通过调整大小来保持内容。

您可以使用像这样的布局框架:Ultimate Toolbox Layout Manager,或者您可以自己滚动。

这是我使用的一个常见模式:

  1. 定义一个结构来捕获控件的 ID、大小、位置和布局行为(锚定 top|left|right|bottom)
  2. 在文档构造函数中,使用您想要的布局行为初始化一个结构数组
  3. OnInitDialog中,捕获初始控件位置,例如,对于设置为锚定左上角的控件,您需要从父对象的顶部和左侧获取初始距离。
  4. OnSize中,根据其布局行为重新定位每个控件并调整其大小。
于 2009-10-29T01:06:44.237 回答
0

我不确定它是否对您有帮助,但ResizableLib 对我来说效果很好。您也可以跳过创建库而只使用项目中的文件。CResizableDialog
有一篇单独的文章,它通过几个简单的步骤解释了如何为现有对话框实现这一点。

于 2009-10-30T09:56:07.583 回答