繁体   English   中英

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

[英]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 ++中会更容易,但是我愿意接受任何最好的建议是。

到目前为止,最好的C ++ GUI库是Qt ,它全面,易于学习,非常快且具有多平台性。

嗯,它最近获得了LGPL许可证,所以现在您可以免费下载它并包含在商业程序中

如果您正在做一个非常简单的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM