我是MFC程序员很长时间并且非常了解它。最近我们正在计划一个大型桌面应用程序。为了击败竞争,一个要求是抛光UI。我们将选择范围缩小到三个:
我们查看了一些大型WinForms应用程序,例如Paint.Net,并认为它仍然缺乏性能。启动需要一段时间,一些UI部分看起来不太好。
我们对QT4寄予厚望,但在编写了几个程序之后,我们发现QT4应用程序的外观与本机Windows UI不相上下。它看起来仍然不同。我们还担心缺少小部件(例如,库中的颜色选择器和日历控件非常糟糕)。
MFC是一个安全的选择,尤其是Codejock.com的组件。使用codeJock工具包,UI界面看起来非常精致。所有需要的小部件都在那里。问题是它的编码风格已经过时了。
您将为下一个桌面应用程序选择什么?
答案 0 :(得分:10)
WinForms现在已经有效了。你应该看看WPF。
有关一些不错的示例的链接,请参阅WPF: Any cool UI ideas i can look at?。
答案 1 :(得分:1)
我们正在构建一些非常大的C#应用程序,性能非常好。如果程序的任何一小部分对性能至关重要,那么很容易插入一些非托管C ++。我发现在早期的XP中创业时间非常糟糕,但是最新的.nets和Vista,启动时间与MFC应用程序相当。
所以我至少要去WinForms / .net。 WPF也是一种明智的面向未来的方法。
答案 2 :(得分:1)
您还可以使用DevExpress或Telerik等组件,它们都具有广泛的WinForms控件库以及最近的WPF控件。我自己使用过DevExpress,对外观很满意。虽然这些库并不便宜,但它们确实具有很多功能。
我从未使用过QT4,所以无法判断。
答案 3 :(得分:1)
对于我的下一个桌面应用程序,我会使用:
Windows上的:
可能是老式的Windows API(没有MFC),因为我对它很熟悉
也许Qt,因为我想尝试一下。
:Cocoa
Linux上的:Qt
答案 4 :(得分:1)
并不是说我非常喜欢MFC,但如果你对它感到满意,请继续。它不会很快消失,虽然肯定不会像WPF那样更新和改进。
答案 5 :(得分:1)
花了12年多的时间开发MFC应用程序,现在使用WPF不到一年,我就没办法回到MFC了。在之前的雇主中,我们将花费无数个小时来定制UI行为并获得正确的图形外观,这在WPF中只需要一小部分时间。更不用说能够使用UI作为XAML(XML)而不是相当过时的资源编辑器的灵活性。
如果你的应用程序必须是C ++(而不是C#),那么我认为使用WPF会更加重要。我没有在C ++中完成.NET,但是我记得这些概述将它作为相当多的额外工作。
答案 6 :(得分:0)
我们的工作目前正在从VB6改进GUI应用程序,使其看起来“更漂亮”。我们已经为我们的升级选择了.NET winforms平台,因为我们的大多数编码人员都熟悉它。 .NET有一些专用于图形的库,并且已经在库中内置了各种漂亮的用户控件。除此之外,还有很多很多定制的控件,比如ComponentONE库,并且有很多开源控件供企业使用,看起来也不错(你可以免费搜索CodeProject.com的文章部分,可下载的控件看起来非常vista / windows 7-esk)。
该框架本身也可以对Windows进行双重缓冲,并且具有bufferedGraphics类,如果您愿意,可以使用这些类来手动处理双缓冲。
然而,当处理高分辨率图像作为背景图片时,Windows窗体仍然是幽灵,真正修复它的唯一方法似乎是使用DirectX库使用机器上的图形硬件进行绘制(这很困难,但是至少它的免费)。
希望这有助于您在平台上做出决定,形成Windows窗体。
答案 7 :(得分:0)
我仍然会考虑MFC。它远没有死,尤其是新的2008功能包。您将获得大量更新,现在可以创建那些精美的功能区UI元素。如果你已经知道MFC,那么你就会知道陷阱(旧的但有些仍然存在)并且可以很快地完成工作。
你可以为MFC购买大量的UI组件,并且它具有与速度相当接近金属的好处。您的最终用户无需安装框架或其他任何内容。
我为我的日常工作编写C#,但我的所有个人项目都是MFC / C ++,因为它们不需要我的用户安装其他框架,库等。