C++的界面库经过几天来的搜索,总结了下面几种的优缺点
1. MFC
优点:VS2008以及VS2010的扩展确实很强大,特别是原生的窗口运行时停靠以及PropertyGrid确实很强大
缺点:默认字体很模糊,无论你对MFC多了解,C++多熟悉,每次写代码时依然要重新熟悉代码,更不用提分析别人写的MFC代码,一个字:乱。
2. WTL
优点:Windows下有个最好的例子:Google Chrome
缺点:缺乏设计器,文档例子很少
3. wxWidgets
优点:虚幻3编辑器在用(不是广告),wxAUI的布局设计器很方便,Windows原生界面很舒服,各种功能封装都很到位。
缺点:布局没有类似GTK+的Fixed绝对坐标方式(Windows SDK默认的左上角像素定位方式),在某些界面显得设计麻烦。 动态链接库多的吓人,工程过于臃肿。
4. Qt, GTK+
据说Windows下不是很好用。
5. DirectUI
有很多个人封装类似功能的库。界面,代码分离, 但99%都是收费
6. C# Windows Form
这是很好的选择,语言方面可以用C++/CLI 免得转换语言
自由停靠功能可以使用WeiFenLuo.winFormsUI.Docking 非常简单
7. WPF
有童鞋已经使用MFC/C++通过加载XML显示界面,不过通过资料显示,WPF的控件很少,甚至连原生的PropertyGrid都没有,设计器倒是很华丽
总结:界面库的选择最重要的一点就是看有没有很好的设计器,这个是高效开发的重中之重。我尊重MFC,敬仰MFC,它作为C++的框架库来说很不错,但是对于界面设计还是过老了。我们开发的是产品,出的是程序,而不是研究MFC,怎样用好MFC。