【问题标题】:Obtaining MFC Feature Pack GUI elements in .NET WinForms在 .NET WinForms 中获取 MFC Feature Pack GUI 元素
【发布时间】:2011-03-02 12:52:00
【问题描述】:

MFC 功能包(和 VS 2010)为几个“现代”GUI 元素(例如带有选项卡式文档的 MDI、功能区和带有停靠面板的 Visual Studio 样式界面)添加了开箱即用的支持.这些对于我们这些必须支持基于 MFC 的遗留应用程序并希望更新其外观和感觉的人来说是一个福音,并且表明 Microsoft 尚未完全放弃非托管 C++ 开发。然而,随着对 .NET、WinForms 和托管代码的大力支持(并且有很多充分的理由),似乎没有理由在非托管 C++/MFC 中开发新应用程序。

那么问题就变成了如何在 WinForms 应用程序中获得这些 GUI 元素。到目前为止,我发现的几乎所有附加组件和库都需要花钱,并引入了额外的依赖项。我没有购买第三方库的预算,微软在 MFC 中免费提供的控件似乎足以满足我们的需求。但我对学习 MFC 开发新应用程序仍有保留。不仅时间上的投入看起来很重要(从各方面来看,MFC 似乎特别难学,即使对于有经验的 .NET 开发人员也是如此——尽管我愿意尝试),而且还提出了 MFC 的寿命问题。当然,考虑到数百万行代码和用原生 C++ 编写的现有应用程序,它会存在一段时间,但手写体似乎已成定局,可以说,它不再是微软吹捧的开发平台。

似乎这些功能现在应该可以在 WinForms 中使用,而不需要第三方插件,或者投入大量时间和资源来自定义绘图。我只是错过了什么吗?我发现很少有在线将 MFC 的这些新功能与 WinForms 中可用的功能进行比较,主要是因为在 MFC 上编写的大多数内容都早于其最近的更新,在此之前它看起来被承认“过时”以及其他缺陷,是几乎不是一个吸引人的新发展平台。随着 VS 2010 的最新版本,我们有一段时间等待 WinForms 再次更新。对于客户需要在预算内具有现代外观的 UI 的应用程序,你们采取了哪些途径?

【问题讨论】:

    标签: c# c++ winforms user-interface mfc


    【解决方案1】:

    这些功能中的大部分是通过 WPF 而不是 WinForms 提供给 .NET 开发人员的。没有什么能满足您“现在应该在 WinForms 中可用”的期望,因为 WinForms 没有被添加到。就像之前的 COM,“它没有死,但它已经完成了”。

    我想你的问题已经有了答案。如果您正在维护 MFC 应用程序,请继续让它看起来像 21 世纪。如果您很了解 MFC,请继续将其用于新应用程序。如果您已切换到托管代码,并且需要学习 MFC 才能使用它,请将精力投入到学习 WPF 中。有一些“转换器”可以将 WinForms 更改为 WPF,以节省您一些时间并帮助您更快地了解 WPF - 例如http://wf2wpf.codeplex.com/

    【讨论】:

      【解决方案2】:

      WinForms 几乎是在 Zombieland —— 不是完全死了,但也绝对不是真的活着。我会说 WinForms 的功能区栏的机会与新版本的 MS-DOS 的机会一样。

      如果您现在想要诸如功能区之类的新功能,MFC 几乎是唯一的选择,无需额外花钱购买第三方库。微软表示 WPF 4 的 Ribbon 控件应该很快就可以使用,但是 AFAIK,它还不可用(尽管 preview 已经有一段时间可用了)。

      【讨论】:

        猜你喜欢
        • 2011-07-06
        • 2010-09-09
        • 2011-06-20
        • 2011-03-20
        • 1970-01-01
        • 1970-01-01
        • 2010-09-16
        • 2012-11-26
        • 1970-01-01
        相关资源
        最近更新 更多