将GUI添加到C++项目(Visual Studio 2010)

3
  1. 我创建了一个C++项目,现在想为它添加图形界面。当我点击项目(Project) --> 添加新项(Add New Item)并选择添加Windows Form时, 它会创建一个头文件和源文件,但也伴随着许多错误,如:

    (公共(public)、私有(private)、this - 'this' 只能在非静态成员函数中使用,“System”等问题..) 这些问题是什么?我该如何使窗体在运行项目时显示呢?

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

谢谢!


2
为什么不先创建一个WinForms项目呢? - Jeff
4个回答

3
有两种使用本地C++方式(使用win32 api)制作GUI的方法:MFC和直接API。
MFC有很多预制组件和类 - 你所做的事情(将表单添加到常规项目中)没有起作用,因为该项目未设置为MFC。
当您创建一个新的win32项目(不是mfc或控制台)时,用于创建窗口等的方法更类似于这里的教程。您可以使用此方法在资源中嵌入窗口,并进行可视化设计 - 但是您至少需要Visual Studio的专业版才能这样做。
如果您刚开始学习GUI,则最好使用类似wxWidgets的东西。

2
不是贬低你,但请接受这个事实——在C++中进行GUI编程是很痛苦的。虽然我建议你从基于MFC的应用程序开始,因为它与Visual Studio集成得很好,而且你不需要安装任何第三方库。MSDN也在那里——样例,网络上有无数的示例。你应该从对话框应用程序开始,VS有很好的设施来进行GUI-MFC映射。
其他人可能会建议你从QT、wxWidgets开始,这些都是不错的选择,但学习曲线会更陡峭,你会因为遇到的问题而感到疲惫。你需要下载、安装和配置这些东西。
如果你不是胆小的人,你可以从本地Windows GUI开发开始——从头开始做所有的事情,包括设置窗口结构、编写消息循环、消息映射(switch-case)等等。

另一方面,一旦安装了wxWidgets,我认为它比MFC更容易学习和使用(Qt可能也是如此)。 - imre
我真的无法同意你的观点!编译、链接和分发都是很痛苦的。 - Ajay

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

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

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


0

开始一个新项目并选择“MFC应用程序”作为应用程序类型会更容易。该项目将被正确配置。您可以选择对话框应用程序(主窗口是单个对话框框或“表单”,如果您习惯于.NET),单文档应用程序(如记事本)或MDI文档应用程序(如Visual Studio)。


哦,对话框应用程序只能在MFC中使用吗?我太久以前就用过了 :) - unkulunkulu
@unkulunkulu,标准Win32项目(非MFC)也会创建对话框过程和对话框模板资源。我只是因为OP提到了C++才建议使用MFC :) - Moo-Juice

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接