日日玩游戏盒子の总结
天天玩游戏盒子の总结大家好,我决定把天天玩的测试版总结出来,希望给初学者帮助。测试版跟今天的发布版有什
天天玩游戏盒子の总结
大家好,我决定把天天玩的测试版总结出来,希望给初学者帮助。
测试版跟今天的发布版有什么不同呢?测试版使用了DirectUI渲染,而发布版使用了类似Emule的渲染。
我在这先把原因说清楚了,DirectUI渲染方式移植到MFC中使用,会有很多问题出现,例如画图计算量大,因为DirectUI是采用计算字符串如何画图的。和win7等以后的系统版本渲染不兼容,会出现很多渲染bug。唯一的好处就是,渲染方便,可以换图以及调整对比色,但不能牺牲性能换取效果,所以,在MFC中采用DirectUI渲染方式是错误的。
采用DirectUI渲染从一开始就设计出错了,年轻的同事又那么自以为是,所以我看了很多开源项目,发现自己很多的不足,对于初学者,看开源项目是最直接的成长,虽然代码思想是继承别人的,但是我们可以衍生很多新的技术。


下面,我来讲解下天天玩测试版源码分析。
天天玩是一个在网页上玩在线游戏的盒子,盒子是采用MFC框架,测试版是采用继承相关控件自绘的,发布版是采用自绘(不是系统自带的),但IE控件是继承CHtmlView,说白了,天天玩就是一个简单的ie游览器,没啥技术含量,不过适合初学者认识MFC以及相关控件。
天天玩项目树如图:

Web控件,CHtmlCtrl 继承了 CHtmlView ,实现了js调用,拦截广告(采用返回指定容器屏蔽广告),刷新,加载完成判断,以及界面效果属性设置。

共同文件下,定义了头信息,以及事件控件id等信息。

基类窗体,采用双缓冲绘图,所以我把双缓冲写到了基类中,子类自绘自行绘画就行。

头文件里,就是包含了相关对话框以及相关控件。

请求,向服务器发送信息。

控件,定义了很多自绘控件。

文件,ini文件操作。

渲染,采用了DirectUI渲染。

实现非常简单,不懂的就看源码。
希望大家以此为鉴,项目开始一定要把相关框架熟悉,否者到头来bug多得你无法想像。
源码包