时间:2014-03-07 14:28 文章来源:http://www.lunwenbuluo.com 作者:魏振钢张恩伟 点击次数:
2.双界面合成方法模拟实现局部刷新
通过上节的讲解,全部刷新是由于UpdateLayeredWindow自身实现的问题,所以我们无法更改,所以我们只有采用模拟的方法来实现局部刷新。
如图一所示,原界面上有三个按钮控件,均为椭圆状,虚线框表示每个控件的大小,实际并不存在,这里要实现的效果是,当用户点击第一个控件时,将其改变成另一样式(菱形),双界面合成方法实现局部刷新的过程如下:
2.1首先,保存原界面;(步骤一)
众所周知,在WINDOWS程序中,绘图DC是与画布相关联的,只要我们的画布不销毁,界面就不会改变。所以,我们先保存上次的画布,为合成最新的画布做准备。
2.2创建一个临时画布,并在其上画出当前最新的控件样式及其背景;(步骤二)
2.4将最新绘制的控件及其背景根据更新区域大小进行裁剪;(步骤四)
2.5将裁剪后的图像与原图像抠图进行合成,形成最终的软件界面;(步骤五)
2.6将最终的软件界面传递给UpdateLayeredWindow显示出来即可;
三、结论
通过研究分层窗体,实现了局部刷新技术,解决了当前所有的界面库都无法创建异形的问题,另外在此基础上,在绘图时,可以使用GDI+绘画技术,而不会出现穿透性问题,同时解决了GDI+与异形窗体的融合性问题。当然对于界面库而言,兴起时间也不长,对于异形窗体的实现更是具有难度的,我相信对于异形窗体的研究会出现更多的成果,就要靠大家在实践中慢慢摸索了。
联系方式
随机阅读
热门排行