最近,在一家公司要求开发一个PC的Windows下的视频培训客户端。
刚开始的时候,根据主管要求选择VC/MFC加GDI+来绘制图形界面,但是做下去越来越发现MFC这东西做界面实在是太繁琐了,各种鼠标键盘事件都要自己实现、还有坐标计算等等,等等(这里说一下,MFC自带的控件太丑了!所以才要自绘)。
其实,就逻辑而言,界面不就是那些东西么,搞得那么复杂。后来总监来询问进度,我说含有标题栏、列表、标签栏的一个主界面需要一个月时间。妮玛,当时主管一脸鄙视的眼神。他只说了句Web只要一天就能搞好了。。。当时我都开始怀疑人生了。。。
后来,通过网上了解到C++开发自绘的控件确实太繁琐了。可能你好不容易开发了一个控件在这个需求下能用,当时新的需求来了又用不了了。搞了很久也就开发几个控件。坐我旁边一个做IOS的兄弟,都天天鄙视我了,说他们3个月开发一个APP什么的(哎,谁让苹果把控件做的那么好了。。。)
后面为了开发效率,自己写了一个声明式的自绘控件渲染库(当然也就支持按钮、单选、多选、标题栏之类点击型的控件)。后来我发现这个库和HTML、CSS的基本想法有点相似,都是声明式的,不同的是我这个超简单、而且声明语句就是对结构体赋值,并没有放到文件中(性能考虑)。
——————————————————————分割线——————————————————————————
后来,在一次会议上。总监提出界面要嵌入网页。于是开始选择MFC嵌入网页的方案:
1、MFC的ActiveX控件