我正在决定如何为小型c ++ / win32 api项目开发GUI(使用Visual Studio C ++ 2008)。该项目只需要一些组件就可以启动主流程,因此它的重量非常轻(只需要一个按钮和一个文本框......)。我的问题是:
我没有在Windows上开发GUI的经验,但我可以轻松学习。那么,我该怎么用?一个可视化编辑器(拖放代码生成:我对远程桌面GUI设计的偏好(java / swing))。或者我应该使用特定图书馆?无论哪种方式,我应该使用WHICH库还是可视化编辑器?我听说有人提到在C#中编写GUI,然后调用C ++代码...事实是,这是一个如此简单的GUI我会发现在C ++中保存它更容易,但我对任何最好的建议是。
答案 0 :(得分:15)
啊,它最近获得了LGPL许可证,所以现在你可以免费下载它并包含在商业程序中
答案 1 :(得分:13)
如果您正在使用非常简单的GUI并且您已经在使用Visual Studio,那么只需使用MFC就可以了。您可以使用Visual Studio MFC向导创建基于对话框的应用程序,在其上放置两个控件,然后离开。
MFC已过时并且有一定的烦恼,但如果您只是在谈论按钮和文本框,它肯定会为您完成工作。
我对Qt没有任何经验,所以我无法比较两者。
答案 2 :(得分:9)
我更喜欢简单地使用Microsoft Visual Studio并编写本机Win32应用程序。
对于像您描述的那样简单的GUI,您只需创建一个Dialog Box并将其用作主应用程序窗口。由Visual Studio中的Win32项目向导创建的默认应用程序实际上会弹出一个窗口,因此您可以使用对话框replace该窗口并将WndProc替换为类似(但更简单)的DialogProc。
然后,问题是工具和成本之一。除了实际创建对话框模板资源之外,Visual C ++的Express Edition可以执行您想要的所有操作。为此,您可以在RC file by hand或in memory by hand中对其进行编码。相关SO问题:Windows API Dialogs without using resource files。
或者您可以尝试其他人推荐的free resource editors之一。
最后,Visual Studio 2008 Standard Edition是一个更昂贵的选项,但为您提供了一个集成的资源编辑器。
答案 3 :(得分:3)
只需创建一个新的MFC C ++应用程序。它内置,非常简单,世界上有成千上万的例子......
另外,您可以在Visual Studio中设计对话框,为它们指定变量名称,并为您生成90%的代码。
答案 4 :(得分:3)
我强烈建议不要使用普通的Win32,因为很难让它在所有情况下都能正常工作,这是非常枯燥乏味的工作,而且Common Controls库不是 完成的。此外,大部分工作已经为您完成。
每当我最终做到简单的Win32时,我必须花费至少几个小时完成最琐碎的任务,因为我必须查找所有参数,标志,函数,宏并找出如何正确连接它们。我通常更喜欢简单的拖放式不使用我的大脑类型的解决方案,只需在2分钟内就可以将它们甩在一起。
作为一个轻量级工具包,我建议omgui有一个干净漂亮的API。但是,它没有任何工具。
如果您需要工具支持,您可能最终想要使用MFC(Visual Studio中内置的资源编辑器)或Qt。我不知道wxWidgets是否有任何工具,但我认为它有。
编辑:David Citron提到显然Visual Studio中的资源编辑器会生成与Win32兼容的资源文件,因此,如果您想要保持简单,这可能是首选方法。
答案 5 :(得分:2)
答案 6 :(得分:2)
对于这样一个简单的应用程序,甚至MFC都会过度。如果不想引入另一个依赖项,只需在普通的Win32中进行。如果你从未使用过MFC,那将会更容易。
查看Charles Petzold的经典“编程Windows”或一些在线教程(例如http://www.winprog.org/tutorial/),您就可以开始了。
答案 7 :(得分:2)
避免QT(对于新手)或任何无用的库(对于这样的基本事物而言是荒谬的)
只需使用VS Win32 api向导,广告按钮和文本框......就是这样!
在25秒内!
答案 8 :(得分:1)
如果你想了解win32,WTL http://wtl.sourceforge.net/是相当于MFC的轻量级,但你必须喜欢模板才能使用它。
如果你想要一些简单的MFC已经与VS集成,它还有很多基础的额外代码和网络中已知错误的解决方法。
此外,Qt是一个非常好的框架,它有一套很好的工具,对话框编辑器,主题和许多其他东西,而且你的应用程序将准备好跨平台,虽然它需要一些时间来习惯。
你也有Gtk,wxWindow,如果你已经在linux上使用它,你将没有问题。
答案 9 :(得分:1)
带有一些文本和按钮的简单“窗口”只是一个MessageBox。您可以使用单个函数调用创建它们;你不需要任何图书馆。
答案 10 :(得分:0)
我已经将wxWidgets用于小型项目,我喜欢它。 Qt是另一个不错的选择,但对于商业用途,您可能需要购买许可证。 如果用C ++编写,请不要使用Win32 API,因为最终会使其面向对象。这不容易且耗时。此外,Win32 API有太多的宏,并且感觉它提供的内容过于复杂。