MFC Feature Pack(和VS 2010)增加了对几个“现代” GUI元素的开箱即用支持(例如带有选项卡式文档的MDI,功能区和带有停靠面板的Visual Studio风格的界面).这些对我们这些必须支持基于MFC的旧应用程序并希望更新其外观的人来说是一个福音,这表明Microsoft尚未完全放弃非托管C开发.但是,由于大力支持.NET,WinForms和托管代码(出于很多充分的理由),似乎没有理由在非托管C / MFC中开发新应用程序.
问题就变成了如何在WinForms应用程序中获取这些GUI元素.到目前为止,我发现的几乎所有附加组件和库都花钱,并引入了其他依赖项.我没有购买第三方库的预算,并且Microsoft在MFC中免费提供的控件似乎足以满足我们的需求.但是我仍然对学习MFC来开发新应用程序有所保留.时间上的投资不仅显得意义重大(从所有人的角度来看,即使对于有经验的.NET开发人员来说,MFC似乎也特别难以学习-尽管我愿意尝试),而且MFC的寿命问题也随之而来.当然,考虑到用本机C编写的数百万行代码和现有应用程序,它会存在一段时间,但是可以说,手写似乎在墙上,不再是Microsoft吹捧的开发平台.
似乎这些功能现在应该已经可以在WinForms中使用了,而无需第三方加载项,也不需要花费大量时间和资源来自定义“一切”.我只是想念什么吗?我在网上很少能将MFC的这些新功能与WinForms中提供的功能进行比较,这主要是因为MFC上编写的大多数内容都早于其最近的更新(在此之前它被认为是“过时的”)以及其他缺陷.几乎没有吸引人的新发展平台.在VS 2010的最新版本中,我们需要等待一段时间才能再次更新WinForms.你们对于客户需要预算的现代UI的应用程序走了哪些路线?
解决方法:
这些功能大多数都是通过WPF(而不是WinForms)提供给.NET开发人员的.因为没有添加WinForms,所以没有什么能满足您“现在应该在WinForms中可用”的期望.像之前的COM一样,“它还没有死,但是已经完成了”.
我想你的问题里有答案.如果您要维护MFC应用程序,请继续进行操作,使其看起来像21世纪.如果您精通MFC,请继续并将其用于新的应用程序.如果您已切换到托管代码,并且需要学习MFC来使用它,则可以将精力投入到学习WPF中.有些“转换器”会将WinForms更改为WPF,以节省您的时间并帮助您更快地了解WPF,例如http://wf2wpf.codeplex.com/.