【问题标题】:How can I add windows controls to a C++ desktop application in Visual Studio 2017?如何在 Visual Studio 2017 中将 Windows 控件添加到 C++ 桌面应用程序?
【发布时间】:2018-03-06 07:59:21
【问题描述】:

我在 Visual Studio 2017 中启动了一个新的 Visual C++ 桌面应用程序,但在开始使用 UI/视图时遇到了问题。我通常使用 WPF 在 C# 中进行 Windows 开发,但由于各种原因,我不得不使用 C++。

这似乎是一个新手问题,但我看不到任何明显的方法来添加基本控件,如 TextBox、Label、Button 或 Canvas。几个小时的在线搜索也没有产生任何具体的结果 - 只是增加了混乱。

当我编译和运行时,那里肯定有一个空白表格。它甚至还有一个菜单 -> 退出。

是否有我应该使用的特定框架,例如 Windows 窗体或 MFC?那些甚至仍然支持吗?是否必须在 C++ 代码中添加所有 UI 元素?我是否选择了错误类型的 Visual Studio 解决方案?

更多信息,应要求提供:

我正在开发一个 3D 建模程序,类似于 Blender,但大大简化了。我需要使用 Autodesk 发布的 FBX SDK,但它只支持 C++。

我已经开始使用 C# / WPF 作为前端的一个版本。目标是稍后将 SDK 与某种多项目解决方案或我单独编译的 dll 合并。我以前没有尝试过这样的事情。

全 C++ 版本是我试图通过整合到一种语言、一个项目和一个解决方案中来简化一切的想法。我认为,如果我每种方式都做一个非常基本的 alpha 版本,它将帮助我选择最佳答案并具有双重教育意义。

【问题讨论】:

  • 几乎可以肯定有更好的方法来解决这个问题,但如果你不记录“各种原因”,那么你就不太可能到达那里。
  • @HansPassant,我会更新答案。

标签: c++ .net visual-studio user-interface


【解决方案1】:

1)是否有我应该使用的特定框架,例如 Windows 窗体或 MFC?

在 VC++ 2017 中使用 MFC,可以快速使用拖放,在对话框上直接插入多个窗口控件,包括 ActiveX/COM 组件。此后,可以通过内置向导生成合适的类、接口事件。多种应用选择 SDI(Single-Document-interface)/MDI/Dialog based 可供选择。

2) 那些还支持吗?

MFC 在 VS 2017 上仍然运行良好,并且非常用户友好,恕我直言,需要最少的编码。

3)是否所有的 UI 元素都必须添加到 C++ 代码中?

没有。假设您在对话框上添加了一些静态文本、加速器、按钮,并使用一行代码生成了一个类。您只需插入适当的控制事件并适当地调用窗口消息。

4) 我是否选择了错误类型的 Visual Studio 解决方案?

不要出现。在 2010、2012、2015 和 2017 年与 MFC 合作,大多数 MFC 代码保持不变。但是当必须从多字节切换到 unicode 样式时,需要进行一些转换。

希望它有助于消除您的疑问。可以很容易地为窗口控件设置皮肤。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多