Visual Studio 中用于复杂表单的 C++ 可扩展 GUI 窗口

Posted

技术标签:

【中文标题】Visual Studio 中用于复杂表单的 C++ 可扩展 GUI 窗口【英文标题】:C++ Scalable GUI window in visual studio for a complex form 【发布时间】:2013-07-02 21:49:29 【问题描述】:

我的任务是添加到别人的代码中。此人在 Visual Studio 2010 中开发了一个带有大量控件、标签、选项卡、图像等的 Windows 窗体。

效果很好,但唯一的问题是,他们将窗口的大小设置得太大(他们家一定有一个巨大的屏幕)。有些控件因为太大而无法访问。 窗口不缩放。 我已经搜索了互联网,并尝试了各种解决方案,但无济于事。

有没有办法将所有以前的工作分组到一个容器中,并在您缩放窗口时使其全部缩放?

【问题讨论】:

您使用哪个版本的 C++?哪个操作系统(我猜是 Win,但仍然值得一问)/框架?在 C++/CLI 中,我会推荐一个表。在 WPF 中,您应该使用 Grid 和 Row/Column 定义。 我不确定如何检查。但我使用的是 Visual C++ Windows7 您是否看到任何与 Qt、Windows、System 或 Forms 相关的#using 或 #include?​​span> #using #using #using 啊,C++/CLI 中的 Winforms。推荐看看这个帖子:***.com/questions/1623746/… 【参考方案1】:

如果您将控件锚定到容器的各个侧面,它们将随着您缩放容器而移动。因此,例如,如果您将按钮锚定到右侧和底部,然后从右下角缩小窗口,则该按钮仍然可见。如果您使用的是 Visual Studio,您可以通过设置控件的首选项或将其拖动到靠近容器的一侧并使其“捕捉”到这些侧面来做到这一点。它也可以以编程方式完成,尽管我不是 100% 想到代码是什么。

【讨论】:

唯一的问题是,它实际上并没有“缩放”。当您调整窗口大小时,功能会根据窗口移动,但它们实际上并不会改变大小。如果窗口太小,元素就会重叠 我看到了你的问题。老实说,我唯一能想到的就是向控件添加“容器调整大小”事件,然后根据容器大小以编程方式更改它们的大小。但如果有很多控件,这可能是一场噩梦。

以上是关于Visual Studio 中用于复杂表单的 C++ 可扩展 GUI 窗口的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 表单:在 Visual Studio 网络浏览器中添加本地 index.html 文件

用于 javascript 和复杂对象描述的 Visual Studio Intellisense 文档

在 C# Visual Studio 中更改表单元素名称的正确方法是啥?

Visual Studio 2010 C# 表单项目 - 拖放 - 最佳方法?

在visual studio中设置流程标题附加到流程c#

表单视图设计器无法在 Visual Studio 2019 中使用 c# .NET Core 3.1 [重复]