将 gui 添加到 c++ 项目 (visual studio 2010)

Posted

技术标签:

【中文标题】将 gui 添加到 c++ 项目 (visual studio 2010)【英文标题】:Add gui to c++ project (visual studio 2010) 【发布时间】:2011-07-28 11:49:38 【问题描述】:

    我创建了一个 c++ 项目,现在我想向它添加一个图形界面。 当我点击Project-->Add New Item,并选择添加Windows Form,它 创建一个头文件和源文件,但有很多错误,例如:

    (“public, privte, this - 'this' 只能在非静态成员函数之外使用”,“System”,...) 这些问题是什么?项目运行时如何让表单显示?

    当我打开一个新项目“Win32 应用程序”时,我看到(并且可以编辑)的只是菜单和对话框...我在哪里可以看到主窗体??

谢谢!

【问题讨论】:

为什么不先创建一个winforms项目呢? 【参考方案1】:

制作 gui 的原生 C++ 方法有 2 种(使用 win32 api); MFC 和直接 API。

MFC 有很多预制的组件和类 - 您所做的(将表单添加到常规项目中)不起作用,因为该项目不是为 MFC 设置的。

当您创建一个新的 win32 项目(不是 mfc 或控制台)时 - 用于创建 windows+such 的方法更类似于教程here。您可以使用这种方法直观地设计您的窗口,将它们嵌入资源中 - 但您至少需要专业版的 Visual Studio 才能做到这一点。

如果你刚开始使用 GUI - 你最好使用 wxWidgets 之类的东西

【讨论】:

【参考方案2】:

不是让你失望,而是接受这个事实 - C++ 中的 GUI 编程很痛苦。虽然我建议你从基于 MFC 的应用程序开始,因为它很好地与 Visual Studio 集成,你不需要安装任何第三方库。 MSDN 也在那里 - 样本,网上的无数例子也可用。你应该从基于对话框的应用程序开始,VS 有很好的工具来进行 GUI-MFC 映射。

其他人可能会建议您从 QT、wxWigets 开始,这些都是不错的选择,但学习曲线会更长,而且您只会对遇到的问题感到厌倦。您将需要下载、安装和配置这些东西。

如果您不胆小,您可以从原生 Windows GUI 开发开始 - 从核心开始做所有事情,包括设置窗口结构、编写消息循环、消息映射(switch-case)和全部。

【讨论】:

另一方面,一旦安装了wxWidgets,我认为它比MFC更容易学习和使用(Qt可能也是如此)。 我真的不能同意你的看法!编译、链接、分发很痛苦。【参考方案3】:

    如果您的应用程序类型是控制台应用程序,最好的方法是重新开始一个新的 Win32 应用程序项目(就像您所做的那样)

    Win32 应用程序是干净的 WinAPI 应用程序,您一般无法以图形方式构建主窗口。您可以尝试创建“对话框应用程序”(这是 Win32 应用程序中的一些选项),但对话框并不是 GUI 中最通用的东西。

如果您不熟悉 WinAPI 编程,您可以提出一个单独的问题,在其中描述您对 GUI 的要求和您的知识,人们会建议工具/框架/方法。

【讨论】:

【参考方案4】:

启动一个新项目并选择“MFC 应用程序”作为应用程序类型会容易得多。然后将为您正确配置该项目。您可以选择使用对话框应用程序(主窗口是单个对话框,如果您习惯于 .NET,则为“表单”)、单文档应用程序(ala notepad)或 MDI 文档应用程序(ala Visual工作室)。

【讨论】:

哦,对话框应用程序仅在 MFC 中可用?很久以前用过的:) @unkulunkulu,标准的 Win32 项目(非 MFC)还创建了一个对话框过程和对话框模板资源。我只建议 MFC 作为 OP 提到的 C++ :)

以上是关于将 gui 添加到 c++ 项目 (visual studio 2010)的主要内容,如果未能解决你的问题,请参考以下文章

如何将 MFC 支持添加到现有的 Win32 C++ 项目?

我的 C++ 项目需要一个 GUI

将 Python 控制台集成到 GUI C++ 应用程序中

如何在带有 VB.net GUI 的 C++ OpenCV 项目中使用 C# 库?

将 C++ Win32 控制台项目类集成到 Visual Studio 2008 中的 Visual C++(Windows 窗体应用程序)项目中

Win32 GUI c++ .bmp 图像未显示