我有一个MFC应用程序。在Windows 7上运行时,我意识到当将显示百分比更改为meduium - 125%时,我有一个TextControl被截断(句子的结尾不会出现。)
我该如何解决这个问题?
我可以在对话框上放大控件的大小,但我宁愿通过代码来做。 我的应用程序已本地化,我不想更改所有语言的所有对话框。
答案 0 :(得分:1)
一般来说,问题是绝对坐标用于某些尺寸而不是相对。该框架最初将在大型DPI中正确布局,然后由您决定是否通过调整大小来保持正确。
你可以使用像这样的布局框架:Ultimate Toolbox Layout Manager,或者你可以自己动手。
这是我使用的常见模式:
OnInitDialog
中,捕获初始控制位置,例如对于设置为锚定左上角的控件,您需要从父级的顶部和左侧抓取初始距离。OnSize
中,根据布局行为重新定位和调整每个控件的大小。答案 1 :(得分:0)
我不确定它是否对你的情况有帮助,但ResizableLib对我来说效果很好。您也可以跳过创建库并只使用项目中的文件 CResizableDialog有一篇单独的文章,它通过几个简单的步骤解释了如何为现有对话框实现这一点。