![](/img/trans.png)
[英]How do I build a Windows GUI Application in Eclipse using C++ (a non console application)
[英]How do I create a GUI for a windows application using C++?
我正在决定如何为小型c ++ / win32 api项目(运行Visual Studio C ++ 2008)开发GUI。 该项目只需要几个组件就可以开始主要过程,因此它的重量非常轻(只需一个按钮和一个文本框...)。 我的问题是这样的:
我没有在Windows上开发GUI的经验,但是我可以轻松学习。 那么,我应该使用什么呢? 一个可视化编辑器(拖放代码生成g:到目前为止,我偏爱桌面GUI设计(java / swing))。 还是应该使用专门的图书馆? 无论哪种方式,我都应该使用WHICH库或可视化编辑器? 我听说有人提到用C#编写GUI,然后调用C ++代码...问题是,这是一个非常简单的GUI,我发现将其全部保留在C ++中会更容易,但是我愿意接受任何最好的建议是。
如果您正在做一个非常简单的GUI,并且已经在使用Visual Studio,那么仅使用MFC可能很有意义。 您可以只使用Visual Studio MFC向导来创建基于对话框的应用程序,在其上放置两个控件,然后就可以使用了。
MFC已过时,并且有很多烦人的地方,但是如果您只是在谈论按钮和文本框,它肯定会为您完成工作。
我没有使用Qt的经验,所以无法比较两者。
我强烈希望仅使用Microsoft Visual Studio并编写本机Win32应用程序。
对于您所描述的GUI一样简单的GUI,您只需创建一个对话框并将其用作主应用程序窗口即可。 实际上,由Visual Studio中的Win32 Project向导创建的默认应用程序会弹出一个窗口,因此您可以用 Dialog Box 替换该窗口,并用类似(但更简单)的DialogProc替换WndProc。
那么,问题是工具和成本之一。 除了实际创建“对话框模板”资源外,Visual C ++的Express Edition可以满足您的所有需求。 为此,您可以手动将其编码在RC文件中 ,也可以手动将其编码在内存中 。 相关的SO问题: 不使用资源文件的Windows API对话框 。
或者,您可以尝试其他人推荐的免费资源编辑器之一。
最后, Visual Studio 2008 Standard Edition是一个较昂贵的选择,但为您提供了集成的资源编辑器。
只需创建一个新的MFC C ++应用程序即可。 它是内置的,非常简单,世界上有成千上万个示例...
另外,您可以直接在Visual Studio中设计对话框,为其指定变量名称,然后为您生成90%的代码。
我强烈建议不要使用普通的Win32,因为它是相当困难的,使其工作确定在所有情况下,这是非常枯燥和繁琐的工作和公共控件库并不完整。 此外,大多数工作已经为您完成。
每次我结束使用普通Win32时,我都必须花至少几个小时来完成最琐碎的任务,因为我必须查找所有参数,标志,函数,宏,并弄清楚如何正确地将它们连接起来。 通常,我更喜欢简单的拖放式“不要让我使用我的大脑”类型的解决方案,然后在2分钟内将它们放在一起。
作为一个轻量级的工具包,我建议使用具有干净漂亮API的omgui 。 但是,它没有任何工具。
如果需要工具支持,您可能最终想要使用MFC(Visual Studio内置的资源编辑器)或Qt。 我不知道wxWidgets是否具有任何工具,但我想它具有。
编辑: David Citron提到,显然Visual Studio中的资源编辑器会生成Win32兼容的资源文件,因此,如果您想使事情保持简单,那可能是首选的处理方式。
诺基亚的Qt无疑是必经之路。 另一个选项是gtk,但是更好地支持和记录了Qt。 无论哪种方式,它们都是免费的。 它们都被广泛使用并且众所周知,因此很容易找到问题的答案。
对于这样一个简单的应用程序,甚至MFC也会显得过大。 如果不想引入其他依赖关系,只需在普通的Win32中进行即可。 如果您从未使用过MFC,它将对您来说更加容易。
查看Charles Petzold的经典“ Programming Windows”或一些在线教程(例如http://www.winprog.org/tutorial/ ),您就可以开始使用。
避免使用QT(对于菜鸟来说)或任何无用的库(对于这样的基本事情都是荒谬的)
只需使用VS Win32 api向导,然后在按钮和文本框中添加广告即可,仅此而已!
在25秒内!
如果您想了解Win32,WTL http://wtl.sourceforge.net/是相当于MFC的轻量级版本,但是您必须喜欢使用模板才能使用它。
如果您希望简单的MFC已经与VS集成在一起,那么它也具有大量的额外代码,并且已经有了网络中已知错误的解决方法。
同样,Qt确实是一个很棒的框架,它具有一组不错的工具,对话框编辑器,主题以及许多其他内容,而且您的应用程序可以跨平台使用,尽管需要一些时间来习惯。
您也有Gtk,wxWindow,如果您已经在Linux上使用过它,那么将不会有任何问题。
一个带有一些文本和一个按钮的简单“窗口”就是一个MessageBox。 您可以通过一个函数调用来创建它们。 您不需要任何库。
我已经将wxWidgets用于小型项目,我喜欢它。 Qt是另一个不错的选择,但是对于商业用途,您可能需要购买许可证。 如果您使用C ++编写,请不要使用Win32 API,因为它将使它面向对象。 这并不容易且费时。 此外,Win32 API包含太多宏,因此提供的功能过于复杂。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.