我应该用C ++选择哪个Windows GUI系统?

时间:2009-04-26 23:55:24

标签: c++

现在有很多方法可以编写Windows应用程序,win32,MFC,ATL,.NET,WinForms,以及其他一些我不知道的方法。我应该选择哪一个?我想要一个全新安装的Vista,并且现代且易于使用。

11 个答案:

答案 0 :(得分:14)

我强烈推荐Qt。它是跨平台的,非常易于使用和LGPL许可。

答案 1 :(得分:5)

如果你是C ++的业余爱好者,你将比任何原生的Visual C ++框架(Win32,MVC等)更容易学习WinForms。 WPF将为您提供最佳的通用性。它比WinForms更难掌握,但是能够让你远离讨厌的Win32东西。

本机框架很好,主要是因为你想要处理性能的最后几点,或者需要为shell扩展等内容保持较小的占用空间。

我建议至少先检查WinForms,以便快速了解原理。如果WinForms不适合你,那么你可以使用C ++,如果你觉得你需要更多的低级别控制,或者如果你想要更多闪亮的功能,如皮肤和主题,你可以转向。

修改
虽然如果你看一下WPF,请记住新鲜的Vista仅包含.Net 3.0,因此3.5和3.5 SP1功能需要单独的运行时安装。

答案 2 :(得分:2)

实际上,从Qt开始很容易 - 你得到一个完整的SDK包含。一个非常好的IDE作为一个简单的包,并与VisualStudio智能集成。

另外LGPL许可允许任何人编写开源和封闭源/商业应用而无需支付任何费用 - 商业支持/许可是可选的!

Qt的最大优势是非常容易学习且非常干净的C ++ API,它不仅可以构建GUI应用程序(它还支持低杠杆网络和文件io等)。

祝你好运, 克里斯

答案 3 :(得分:1)

简短回答......这取决于。

你的技能/背景是什么?你为什么开发桌面应用程序?它是用于工作还是作为实验来学习新的东西?是否会有其他多个开发人员参与其中,他们的技能是什么?

我个人的偏好是winforms,因为这是我花费大部分时间编写的(在C#中)。它们非常快速地组合在一起,VS IDE非常快速。稳定用于构建应用程序的UI元素。您可以使用Click Once发布/部署它们,这样可以在您进行更改时轻松更新客户端。更新。

或者,您可能希望查看WPF,它是.NET 3.5中的新Presentation Foundation。这将允许您为桌面应用程序利用更新的“更有光泽”的UI体验。

答案 4 :(得分:1)

使用Scenic Ribbon,Win32越来越好了。适用于Vista和Windows 7。

答案 5 :(得分:1)

我可能有偏见(不是我们所有人?),但由于您的问题表明您对 Windows 开发感兴趣并且您想要现代和<强大>易于使用 GUI框架可以与 Vista 一起使用,显而易见的答案是 .NET WinForms

答案 6 :(得分:1)

我个人更喜欢gtkmm。虽然它看起来不像Qt或Windows上的本机框架,但我认为API在我尝试过的所有框架中都是最透明的。感觉非常OOish,而且非常容易学习。您可以使用Glade轻松创建GUI布局,但您也可以使用代码创建不错的设计。在这方面,gtkmm类似于Java GUI编程。

答案 7 :(得分:1)

我会推荐WxWidgets。 API易于理解;样品记录很清楚;它是跨平台的。如果您正在编写将拥有大量用户的应用程序,您最终将希望可以选择在不同的操作系统上运行它。通过选择仅限Microsoft的API,您将永久地将自己置于Microsoft角落。离开需要对您的软件进行严格的重构,这需要您学习另一个API。接受我的建议,从一个跨平台的API开始 - 它将在未来为您带来许多悲伤。

答案 8 :(得分:1)

我建议使用C++Builder 2009,它可以创建适用于Windows 2000,XP和Vista的应用程序。

答案 9 :(得分:1)

如果你走微软的路线,一定要检查一下他们最近投入了哪些框架。例如,MFC是一个不应该用于新开发的旧框架,因为MS没有任何时间进入它,并且附加MFC组件的市场已经枯竭并被吹走。

基本上,在选择MS支持的技术时,请确保选择一个尚未出现的技术。

答案 10 :(得分:1)

所以你是一名只有PHP知识的学生?在考虑使用GUI之前,您需要使用适当的语言加快速度。我建议你使用C#,因为你已经习惯了花括号,你想要编程Windows。 WinForms是.Net的一部分,而不是一个单独的东西。只需下载Visual Studio 2008 Express即可启动并运行。顺便说一句,GUI编程在任何语言中都很难,特别是在您将玩具程序的阶段移动到真实应用程序之后。

如果您对C ++有更高的了解,我会建议使用Qt。仅仅因为新的LGPL许可证消除了最终的障碍。它还具有跨平台,高质量,高性能的特点,现在拥有庞大公司(诺基亚)的资金支持,以确保进一步发展。