代码之家  ›  专栏  ›  技术社区  ›  Zombies

如何使用C++创建Windows应用程序的GUI?

  •  24
  • Zombies  · 技术社区  · 16 年前

    我正在决定如何为一个小型的C++/Win32 API项目(工作VisualStudioC++ 2008)开发一个GUI。这个项目只需要几个组件就可以开始主要的流程,所以它的重量非常轻(只有一个按钮和一个文本框,几乎是…)。我的问题是:

    我没有在Windows上开发GUI的经验,但是我可以很容易地学习。那么,我应该使用什么呢?一个可视化的编辑器(拖放代码生成:我对桌面GUI设计的偏爱(Java/Swing))。还是应该使用专门的图书馆?不管怎样,我应该使用哪个库或可视化编辑器?我听到有人提到在C语言中编写GUI,然后调用C++代码…问题是,这是一个如此简单的GUI,我会发现它更容易保持所有的C++,但我对任何最好的建议是开放的。

    11 回复  |  直到 9 年前
        1
  •  13
  •   17 of 26    16 年前

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

    MFC过时了,也有相当一部分的烦恼,但如果你只是在谈论一个按钮和一个文本框,它肯定会为你做这项工作。

    我对qt没有任何经验,所以我无法比较两者。

        2
  •  15
  •   Marc.2377    10 年前

    到目前为止,最好的C++图形用户界面库 Qt 它综合性强,易学,速度快,而且形式多样。

    啊,它最近获得了一个LGPL许可证,所以现在你可以免费下载它并将其包含在商业程序中。

        3
  •  8
  •   Community CDub    8 年前

    我非常喜欢简单地使用Microsoft Visual Studio和编写本机Win32应用程序。

    对于像您描述的那样简单的GUI,您可以简单地创建一个 Dialog Box 并将其用作主应用程序窗口。在Visual Studio中,由Win32项目向导创建的默认应用程序实际上会弹出一个窗口,因此您可以 replace 该窗口与您的对话框并用类似的(但更简单的)替换wndproc DialogProc .

    那么,问题就在于工具和成本。这个 Express Edition VisualC++只需创建对话框模板资源即可。为此,您可以在 RC file by hand in memory by hand . 相关销售代表问题: Windows API Dialogs without using resource files .

    或者你可以试试 free resource editors 其他人推荐的。

    最后, Visual Studio 2008 Standard Edition 是一个成本更高的选项,但提供了一个集成的资源编辑器。

        4
  •  3
  •   LarryF    16 年前

    只需创建一个新的MFC C++应用程序即可。它是内置的,非常简单,世界上有成千上万的例子…

    另外,您可以在Visual Studio中正确地设计对话框,为它们指定变量名,并为您生成90%的代码。

        5
  •  3
  •   Jasper Bekkers    16 年前

    我强烈建议不要使用普通的win32,因为它很难让它在所有情况下都正常工作,它是相当枯燥乏味的工作,公共控件库不是 那个 完成。而且,大部分工作都是为你完成的。

    每次我做普通的win32时,我都要花至少几个小时来完成最简单的任务,因为我必须查找所有的参数、标志、函数、宏,并找出如何正确地连接它们。我通常更喜欢简单的拖拽-不要让我用我的大脑-类型的解决方案,只需在2分钟内把事情集中起来。

    作为一个轻量级的工具包,我建议 omgui 它有一个干净漂亮的API。但是,它不附带任何工具。

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

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

        6
  •  2
  •   Chris    16 年前

    诺基亚的Qt无疑是一条必经之路。另一个选项是gtk,但是qt得到了更好的支持和记录。不管怎样,他们都是自由的。它们都被广泛使用和广为人知,所以很容易找到问题的答案。

        7
  •  2
  •   devdimi    16 年前

    对于这样一个简单的应用程序,即使是MFC也会杀伤力过度。如果不想引入另一个依赖项,只需在普通的Vanilla Win32中进行即可。如果你从未使用过MFC,对你来说会更容易。

    查看Charles Petzold的经典“编程窗口”或一些在线教程(例如 http://www.winprog.org/tutorial/ )你准备好了。

        8
  •  2
  •   ghkio    16 年前

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

    只需使用vs win32 api向导,添加按钮和文本框…就这样!

    再过25秒!

        9
  •  1
  •   Ismael Philip Pryde    16 年前

    如果你想了解win32,wtl http://wtl.sourceforge.net/ 是相当轻的相当于MFC,但您必须喜欢模板才能使用它。

    如果您想要一些简单的MFC已经与VS集成在一起的东西,它还拥有大量额外的代码和网络中已知错误的解决方法。

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

    您还拥有GTK、WXWindow,如果您已经在Linux上使用过它,那么您将不会遇到任何问题。

        10
  •  0
  •   MSalters    16 年前

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

        11
  •  0
  •   jpastuszek    16 年前

    我在小项目中使用了wxwidgets,我喜欢它。Qt是另一个不错的选择,但对于商业用途,您可能需要购买许可证。 如果你用C++编写,不要使用Win32 API,因为你最终会使它成为面向对象的。这不容易,也不费时。而且,win32 api有太多的宏,对于它所提供的东西感到过于复杂。