Visual c++ 2010 Express 列出了许多已安装的模板,其中之一是 Windows 窗体应用程序。Visual Studio 2012 express 将所有单独的语言组合到一个包中,现在没有适用于 C++ 的 Windows 窗体应用程序的选项,仅适用于 Visual Basic 和 C#。我怎样才能创建一个?
4 回答
“Windows 窗体”项目模板(明智地)从 C++/CLI 语言中删除。如果要使用 Windows 窗体,则应使用 C# 或 VB.NET。
另请参阅:Visual C++ 中的重大更改
引用:
以下项目模板不再存在:
- Windows 窗体应用程序
- Windows 窗体控件库
尽管我们建议您不要在 C++/CLI 中创建 Windows 窗体应用程序,但支持维护现有的 C++/CLI UI 应用程序。如果您必须创建 Windows 窗体应用程序或任何其他 .NET UI 应用程序,请使用 C# 或 Visual Basic。仅将 C++/CLI 用于互操作性目的。
事实上,尽管不建议这样做,但使用 WinForms 甚至 WPF 的图形用户界面仍然可以使用 C++/CLI。这不是很有趣,因为您必须自己编写所有代码,没有 XAML 支持,没有可视化设计器。但是,如果您遇到设计者无论如何都不适用的情况(例如在循环中创建控件),那么这可能不是一个很大的缺点。
您可以从控制台应用程序模板开始,实例化一个表单并调用 Application.Run 等等,然后使用所有其他 UI 代码。然后在链接器设置中,将子系统从 Console 更改为 Windows。
同样,这是制作 .NET GUI 的艰难方法,我不建议这样做。但是,如果您无论如何都想这样做,那就是这样。
而对于 GUI 和本机互操作,例如使用 OpenGL 或 OpenCV 或 Direct Show,它可能是最不痛苦的选择。
自 VS 2012 以来,对使用 C++ 的 Windows 窗体的支持得到了改进。在 VS 2019 中,在 VS 安装程序的“单个组件”下安装工作负载“.net desktop development”和“C++/CLI support for v142 build tools (14.28)”。然后可以在类别 GUI 下将表单作为新项目插入,并且它们现在也具有设计器支持。此外,在由 Richard Kaiser 为 Visual Studio 2019 安装插件 C++/CLR Windows 表单后,项目模板“CppCLR_WindowsFormsProject”变得可用。
事件处理可以通过点击属性窗口来添加,和C#、VB.net一样,基本上一切都一样。您还可以使用 C++ 创建 WinForms 用户控件,我在这里 ( https://github.com/Jens-Kluge/Wavelet-CppWForms ) 这样做了。Richard Kaiser 的“C++ mit Visual Studio und Windows Forms Anwendungen”一书中给出了进一步的解释(另见https://www.rkaiser.de/wp-content/uploads/2019/04/cpp-2019-WinForms-Anleitung -EN.pdf用于教程)。我唯一缺少的是 nuget 库,它们中的大多数不会为 C++/CLI 项目安装。