MFC开发自绘控件界面的吐槽
2016-09-09 16:45
337 查看
最近,在一家公司要求开发一个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++越来越无力了,开发效率不是一般低。。。
刚开始的时候,根据主管要求选择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++越来越无力了,开发效率不是一般低。。。
相关文章推荐
- VS2010/MFC编程入门之二(Ribbon界面开发:为Ribbon Bar添加控件)
- VC(MFC)开发,控件界面开发,案例模板,V1.0正式发布,一例走天下
- VS2010/MFC编程入门之三(Ribbon界面开发:使用更多控件并为控件添加消息处理函数)
- (转载)VS2010/MFC编程入门之五十四(Ribbon界面开发:使用更多控件并为控件添加消息处理函数)
- 使用VS2010开发ActiveX(MFC)控件(2)——界面显示
- VS2010/MFC编程入门之五十四(Ribbon界面开发:使用更多控件并为控件添加消息处理函数)
- 使用VS2010开发ActiveX(MFC)控件(2)——界面显示
- VS2010/MFC编程入门之五十三(Ribbon界面开发:为Ribbon Bar添加控件)
- 使用VS2010开发ActiveX(MFC)控件(2)——界面显示
- VS2010/MFC编程入门之五十四(Ribbon界面开发:使用更多控件并为控件添加消息处理函数)
- VS2010/MFC编程入门之五十三(Ribbon界面开发:为Ribbon Bar添加控件)
- 使用VS2010开发ActiveX(MFC)控件(2)——界面显示
- VS2010/MFC编程入门之五十三(Ribbon界面开发:为Ribbon Bar添加控件)[转]
- VC(MFC)开发,控件界面开发,案例模板,V2.0正式发布,一例走天下
- MFC 开发界面增加控件提示 的方法
- MFC自绘控件与界面美化
- (转载)VS2010/MFC编程入门之五十三(Ribbon界面开发:为Ribbon Bar添加控件)
- MFC界面开发笔记(四)
- WinForm界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用