Windows的C ++对话框缩放工具类(Windows C++ dialog resizer cl

2019-07-18 12:56发布

我在寻找一个非常好的对话缩放工具类,将拉长,并根据需要为屏幕大小缩小单个项目。 斯蒂芬·凯尔有一个很好的(DlgResizeHelper)由一组比基本上调整大小的一切,但我正在寻找的东西更聪明。

例如:

  • 图标不应该调整

  • 单行文本框不应该垂直拉伸

  • 按钮也许应该保持相同大小

基本上我寻找的东西来看待所有的控制,找出一个静态文本字段是关系到未来/下方的控制和锚两个在一起,并调整大控制在一个“聪明”的方式,所以它看起来好。

有没有这样的框架在那里? 我一直在工作之一,但现成的可能会更好一些。

追问:我期待在建议的解决方案。 他们中的许多要求你在一个锚去的对话框上的每个控件。 我在寻找的东西的智能,将找出是什么锚应该与如果猜测是错误的手动锚的能力。 似乎应该是可能的 - 大多数人会同意旁边的一个编辑字段的静态文本字段应该被固定在一起。 猜猜我几乎找了小AI在这里:)

Answer 1:

你可以使用wxWidgets的。 它完全取代MFC,是多平台,并为您提供了一个基于布局的对话机制。



Answer 2:

我用ResizableLib (也做PropertySheets和Pages)关闭CodeProject上,IIRC。 您设置确定对话框和控制如何调整或移动作为移动对话框锚点。

您可以设置每个控制2个锚,(左,右),这样你就可以在其移动它们移动的对话框移动或调整它们的大小。 它很容易理解,如果难以得到完全正确:)



Answer 3:

我已经尝试了很多,最后定居在http://www.codeproject.com/KB/dialog/layoutmgr.aspx 。 它不会做的“智能”布点,你建议,但。 我从来没有见过,在任何图书馆,在任何平台上 - 我不明白怎么会不具有不得不反正被覆盖一半的时候引擎盖下魔术的很多工作。



Answer 4:

终极工具箱MFC库( 这里在CodeProject)包括布局管理器 。 我没有用它自己,但它看起来像它你想要做什么。



Answer 5:

你可以看一下专业GUI我们使用我们的调整对话框控件的类库。 我认为这是他们的免费版本的一部分。



Answer 6:

我们使用CResize类从CodeGuru自动调整所有控件。 你告诉你如何希望每个控制调整大小和它的工作适合你。

调整大小模式是指定多少时,调整对话框控制的各方面将移动。

SetResize(IDC_EDIT1, 0,   0,   0.5, 1);
SetResize(IDC_EDIT2, 0.5, 0,   1,   1);

非常方便,当你有大量的对话框控件。

源代码



Answer 7:

这是一个免费的解决方案也从CodeProject
http://www.codeproject.com/KB/dialog/dlgresizearticle.aspx
这只是一个简单的一套宏认为位置控制的对话框调整大小。

编辑 - 下面的OP的意见。 我不知道任何一般分级机支持像QT / WX为MFC的,它似乎并不存在于类似的WinForms新的框架要么。
它是在QT / WX,因为必须为多平台,其中小窗口可具有不同的尺寸,这解释了MS缺乏。 但是,这也是对多语言的端口是至关重要的,如。 其中,德国的取消是30个字符长。



文章来源: Windows C++ dialog resizer class