如何使用C+为windows应用程序创建GUI+;? 我决定如何开发一个小型的C++/Win32 API项目(工作VisualStudioC++ 2008)的GUI。该项目只需要几个组件就可以启动主流程,因此重量非常轻(几乎只有一个按钮和一个文本框…)。我的问题是:

如何使用C+为windows应用程序创建GUI+;? 我决定如何开发一个小型的C++/Win32 API项目(工作VisualStudioC++ 2008)的GUI。该项目只需要几个组件就可以启动主流程,因此重量非常轻(几乎只有一个按钮和一个文本框…)。我的问题是:,c++,visual-studio,user-interface,winapi,C++,Visual Studio,User Interface,Winapi,我没有在windows上开发GUI的经验,但我可以轻松学习。那么,我应该用什么呢?可视化编辑器(拖放代码生成:我目前最喜欢的桌面GUI设计(java/swing))。或者我应该使用特定的图书馆?无论如何,我应该使用哪个库或可视化编辑器?我听到有人提到在C语言中编写GUI,然后调用C++代码…问题是,这是一个简单的GUI,我会发现它更容易保持在C++中,但是我对任何最好的建议都是开放的。 < p>到目前为止,最好的C++ GUI库是全面的、容易学习的、非常快的、多格式的。 啊,它最近获得了LGPL

我没有在windows上开发GUI的经验,但我可以轻松学习。那么,我应该用什么呢?可视化编辑器(拖放代码生成:我目前最喜欢的桌面GUI设计(java/swing))。或者我应该使用特定的图书馆?无论如何,我应该使用哪个库或可视化编辑器?我听到有人提到在C语言中编写GUI,然后调用C++代码…问题是,这是一个简单的GUI,我会发现它更容易保持在C++中,但是我对任何最好的建议都是开放的。

< p>到目前为止,最好的C++ GUI库是全面的、容易学习的、非常快的、多格式的。
啊,它最近获得了LGPL许可证,所以现在你可以免费下载它并将其包含在商业程序中

如果你正在使用一个非常简单的GUI,并且你已经在使用Visual Studio,那么使用MFC可能是有意义的。您只需使用VisualStudioMFC向导创建一个基于对话框的应用程序,在其上放置两个控件即可

MFC已经过时了,也有很多烦恼,但如果你只是在谈论一个按钮和一个文本框,它肯定会帮你完成这项工作


我没有任何使用Qt的经验,因此无法将两者进行比较。

诺基亚的Qt绝对是一种选择。另一个选项是gtk,但更好地支持和记录Qt。不管怎样,他们都是免费的。它们都被广泛使用和众所周知,所以很容易找到问题的答案。< /P> < P>创建一个新的MFC C++应用程序。它是内置的,非常简单,世界上有成千上万的例子


另外,您可以在VisualStudio中设计对话框,给它们变量名,90%的代码都是为您生成的。

对于这样一个简单的应用程序,即使是MFC也会有点过头。如果不想引入另一个依赖项,只需在普通的Win32中进行即可。如果您从未使用过MFC,则会更容易


查看Charles Petzold的经典“编程窗口”或一些在线教程(例如),您就可以开始了。

如果您想了解win32,WTL相当于MFC,但您必须热爱模板才能使用它

如果你想要一些简单的MFC已经与VS集成在一起,那么它已经有了大量的额外代码和网络中已知bug的解决方法

此外,Qt是一个非常棒的框架,它有一套很好的工具、对话框编辑器、主题和许多其他东西,加上您的应用程序将准备好跨平台,尽管这需要一些时间来适应


您还有Gtk、wxWindow,如果您已经在linux上使用过它,您将不会有任何问题。

我强烈希望只使用Microsoft Visual Studio并编写本机Win32应用程序

对于像您描述的那样简单的GUI,您可以简单地创建一个应用程序窗口并将其用作主应用程序窗口。VisualStudio中由Win32 Project向导创建的默认应用程序实际上会弹出一个窗口,因此您可以使用对话框打开该窗口,并用类似的(但更简单)窗口替换WndProc

因此,问题在于工具和成本。VisualC++的所有操作都是你想要的,除了实际创建对话框模板资源。为此,您可以在或中对其进行编码。相关问题:

或者你们可以试试其他人推荐的一种


最后,是一个成本更高的选项,但它为您提供了一个集成的资源编辑器。

我强烈建议不要使用普通的Win32,因为要使它在所有情况下都正常工作非常困难,这是一项非常枯燥乏味的工作,而且通用控件库还没有那么完整。而且,大部分工作已经为您完成

每次我完成简单的Win32时,我都必须在最琐碎的任务上花费至少几个小时,因为我必须查找所有参数、标志、函数、宏,并找出如何正确连接它们。我通常更喜欢一个简单的拖放式的解决方案,不要让我使用我的大脑,只需在2分钟内把东西猛击在一起

作为一个轻量级工具包,我建议使用一个干净漂亮的API。但是,它没有任何工具

如果您需要工具支持,您可能最终想要使用MFC(内置于VisualStudio中的资源编辑器)或Qt。我不知道wxWidgets是否有任何工具,但我认为它有

编辑:David Citron提到,Visual Studio中的资源编辑器显然会生成与Win32兼容的资源文件,因此,如果您想保持简单,这可能是首选的方法。

一个带有一些文本和按钮的简单“窗口”只是一个消息框。您可以通过单个函数调用创建它们;你不需要任何库。

避免QT(用于noobs)或任何无用的库(对于这样一个基本的东西来说是荒谬的)

只需使用VS Win32 api向导,添加按钮和文本框…仅此而已


再过25秒

我在小项目中使用了wxWidgets,我很喜欢它。Qt是另一个不错的选择,但对于商业用途,您可能需要购买许可证。
如果你用C++写,不要使用Win32 API,因为你最终会使它成为面向对象的。这既不容易也不费时。此外,Win32 API有太多的宏,并且对于它提供的内容来说过于复杂。

v4.5将获得LGPL许可,但尚未发布。QT的主要优点是它是跨平台的。你可能认为你现在不需要它,但只要等到几年后,你想移植……如果你使用了QT,你会笑的。编写跨平台代码