MFC开发自绘控件界面的吐槽

最近,在一家公司要求开发一个PC的Windows下的视频培训客户端。

刚开始的时候,根据主管要求选择VC/MFC加GDI+来绘制图形界面,但是做下去越来越发现MFC这东西做界面实在是太繁琐了,各种鼠标键盘事件都要自己实现、还有坐标计算等等,等等(这里说一下,MFC自带的控件太丑了!所以才要自绘)。

其实,就逻辑而言,界面不就是那些东西么,搞得那么复杂。后来总监来询问进度,我说含有标题栏、列表、标签栏的一个主界面需要一个月时间。妮玛,当时主管一脸鄙视的眼神。他只说了句Web只要一天就能搞好了。。。当时我都开始怀疑人生了。。。

后来,通过网上了解到C++开发自绘的控件确实太繁琐了。可能你好不容易开发了一个控件在这个需求下能用,当时新的需求来了又用不了了。搞了很久也就开发几个控件。坐我旁边一个做IOS的兄弟,都天天鄙视我了,说他们3个月开发一个APP什么的(哎,谁让苹果把控件做的那么好了。。。)

后面为了开发效率,自己写了一个声明式的自绘控件渲染库(当然也就支持按钮、单选、多选、标题栏之类点击型的控件)。后来我发现这个库和HTML、CSS的基本想法有点相似,都是声明式的,不同的是我这个超简单、而且声明语句就是对结构体赋值,并没有放到文件中(性能考虑)。

——————————————————————分割线——————————————————————————

后来,在一次会议上。总监提出界面要嵌入网页。于是开始选择MFC嵌入网页的方案:

1、MFC的ActiveX控件 CWebBrowser2:这货对JS和H5支持太差,而且和你安装的IE版本有关,果断弃用了。。。

2、WebKit:整这个Webkit的编译环境搞了2天,最后编译好了,发现妮玛太复杂了。。。要学习估计都来不及了。于是又弃用了。。。

3、nw.js和CEF3:后面发现了这2个web native的客户端图形界面解决方案。这两个都很不错。nw.js更倾向于JS一点,对C++支持有限,但是更开发更简洁。CEF3的话C++支持很多,但是相对要复杂。由于,我们要开发的这个客户端还要去有类似同花顺的行情功能,考虑到对C++的支持选择了CEF3,用到现在。


经过这个3个多月的折腾,发现web技术在图形界面方面的开发还是快啊,效率、用户体验啥的也没差很多。

哎~感觉咋们C++越来越无力了,开发效率不是一般低。。。

你可能感兴趣的:(吹牛逼)