转载必须注明原文转自C++博客(cppblog),作者毕达哥拉斯半圆,谢谢合作。写这个文章的目的,是希望得到更多人的帮助、指导、提供建议,甚至合作。我想自己开发一个Windows上的C++GUI,我取名叫做WarmGUI,因为CoolGUI.com已经被人注册了,我想那我就叫Warm吧 ^_^
我会用MFC开发简单的Windows应用,我的兴趣在服务器端并且喜欢稍微系统底层一些的工作,做了较长时间之后。现在的工作需要我开发一个客户端应用,但是现在,我发现桌面世界变了,我总结了一些主要原因,不一定正确,而且,这也不是我的重点,只是阐述我的目的和动因,请批评指正。
1. Apple公司的个人产品更加注重个性化合视感(look & fell),尽管不是新话题,在GoF的设计模式中,已经论述过MVC以及look & fell,那么在GoF之前这个话题必然已经存在一段时间了。但是乔布斯帮主在这个方向做到了极致,各种i产品不断冲击桌面,移动,掌上各种终端,导致所有的厂商不得不跟上Apple公司的脚步。
2. 为了获得"漂亮"的视觉效果,iOS, Android, linux等产品以OpenGL为主要渲染工具做界面开发,而微软公司与之抗衡的工具是DirectX,并且在近些年的发展中DirectX大有超过OpenGL的势头,至少在某些宣传中是这样。当然这两技术必然将长期共存很长时间。
3. 微软为了跟上时代潮流,从Win7开始,系统内置DirectX11客户运行库,用户无需单独安装。而WPF开始取代MFC做为主流的桌面产品,WPF的子集Silverlight也作为网页前端开发工具,在IE9中提供特殊视觉效果。
至此,我认为开发UI应用的人必须:
1. 学习和掌握DirectX/OpenGL至少两者之一
2. 学习和掌握WPF以及Net4以上
但是对我个人而言,我学习WPF但是拒绝使用WPF,原因如下:
1. WPF是一个新的框架,只要是框架就会被限制在里面,mfc那冰冷呆板的样子就是一个例子(这也给Apple可乘之机)。wpf不过是用新的冰冷呆板的框架取代了旧的冰冷呆板的框架。
2. 据说WPF的效率不佳,并且WPF的视觉效果,是对Direct3D, Direct2D等的封装,如果想玩的好,还是得从DX玩学起。
3. 我非常厌恶 C# + .Net 组合,拒绝使用任何C#和.Net,我喜欢效率,喜欢赤裸裸的虐待系统,不喜欢隔着衣服玩女人。我强烈的要求使用C++/C做开发,我不知道是否有人跟我一样,还是这只是我的个人偏好。
综合以上原因,我下载了
CEGUI,
MyGUI, 这两个C++UI框架的主要应用时游戏,当然了,OpenGL/DirectX神马的最早就是应用在游戏上的,他们已经做的比较完善,比较强大了。但是我运行了他们的Demo之后,却对效率界面效果不是很满意而且有错误,看来需要读他们的源代码,并且修改。
既然如此,我想我可以开发一个自己的框架,反正我要学习的东西那么多(Dx,OGL, WPF, CEGUI, MyGUI...),边学边干呗。既然要学习,就学的高兴一点,玩得嗨一点。
目前我的设想如下:
1. 作为通用的界面基础,在此之上构建商业软件,游戏等等;
2. 轻量级的类库,不像MFC那样对一切进行封装,允许大量使用Windowd API,只做必要的封装;
3. 保持灵活度和扩展性;
4. 采用Direct2D, Direct3D做渲染;
5. 后期做一个可视化的IDE,嵌入VisualStudio中,做窗口布局,自动生成代码等。
看来我要做的工作还真不少,下一节,我开始把我做的一些工作总结写出来,还要请大家不吝赐教啊!学生这里先谢过啦~
珍爱生命,努力编程!!