求教动态换肤解决办法
求教动态换肤金山卫士、360、迅雷、酷狗都有差不多如上图的动态换肤。求教这是怎么做的?有大侠能给份源码不?ry
求教动态换肤

金山卫士、360、迅雷、酷狗都有差不多如上图的动态换肤。求教这是怎么做的?
有大侠能给份源码不? rydiy.zhwi@gmail.com
或者给点框架思路也行。
找了几晚上了,金山卫士的开源也还没到换肤的模块,叩谢各位大神。。。。
[解决办法]
不同意,win32做这些也很方便的,效率应该比自已绘制还高一些。再说,dui方式,不是谁都可以搞定的。
dui方式换肤,也是要先画父窗口,再画子控件,如果优化的不好,画每个子控件的时候,如果都刷新一下父窗口,效率更低,反而是win32方式,控件只刷新自己,效率会高很多。
[解决办法]win32很明显没有directui方式方便。
win32,我们一般都会给form和panel加cache来提高绘制效率,所以换肤时必须要删除这些cache。
dui方式,每个控件只需画自己的(都是在父窗口dc上画)。
换肤时要刷新父窗口(win32和dui都需要),不必刷新控件(除非设置clip样式,否则子控件会被刷新的)。
dui方式中子控件刷新自己时不需要刷新整个窗口,刷新自己所在区域就行了。
[解决办法]dui就除了控制键盘输入麻烦点 其他都很方便
[解决办法]谷歌code里面有duilib的源码,如果需要,我可以发给你,控件基本都补全了。
[解决办法]directui的方式有N种。 不一定的。看个人理解不同 directui只是没有HWND罢了 全部在一个HWND绘制
[解决办法]特意写了两个测试程序试了一下。在两个1024*768的干净父窗口中,其中一个创建一个干净的800*600的有句柄的子窗口,另一个创建一个800*600的无句柄子窗口。子窗口只做一件事:就是显示一张800*600的bmp图。父窗口也只做一件事:就是显示一张1024*768的bmp图。
然后两个程序让子窗口分别刷新1000次计时取平均值。结果如下:
有句柄的,花费约1800ms.
无句柄的,花费约2800ms.