Duilib 换肤
来源:互联网 发布:233什么意思网络用语 编辑:程序博客网 时间:2024/05/19 07:42
关于Duilib的换肤问题:
首先需要在xml文件中定义一个控件(一般是布局),下面代码的取名叫bg
<HorizontalLayout name="bg" bkimage="file='bg0.png' corner='600,200,1,1'" hole="true">
接下来在c++的事件代码中,对应的事件处理函数中加入如下代码就能实现换肤功能了:
if (_tcsicmp(msg.pSender->GetName(), "bg") == 0){CControlUI* background = m_PaintManager.FindControl("bg");if (background != NULL){TCHAR szBuf[MAX_PATH] = {0};++bk_image_index_;if (kBackgroundSkinImageCount < bk_image_index_)bk_image_index_ = 0;_stprintf_s(szBuf, MAX_PATH - 1, _T("file='bg%d.png' corner='600,200,1,1'"), bk_image_index_);//设置背景图片background->SetBkImage(szBuf);//换肤一般是需要用观察者模式,因为在一个系统的软件中//换肤的不仅仅是一个界面,而是一系列的界面,所以点击了//换肤按钮时,不仅需要换当前的页面,还需要换其他的页面//所以使用观察者模式通知其他所有的观察者进行页面的更新//观察者模式需要传递的参数// SkinChangedParam param;// CControlUI* background = m_PaintManager.FindControl(kBackgroundControlName);// if (background != NULL)// {// param.bkcolor = background->GetBkColor();// if (_tcslen(background->GetBkImage()) > 0)// {// _stprintf_s(szBuf, MAX_PATH - 1, _T("bg%d.png"), bk_image_index_);// }// // param.bgimage = szBuf;// }//观察者模式,具体代码省略,就是观察者模式有关的代码 //skin_changed_observer_.Broadcast(param);}}
0 0
- Duilib 换肤
- duilib入门之贴图描述、类html文本描述、动态换肤、Dll插件、资源打包
- duilib入门之贴图描述、类html文本描述、动态换肤、Dll插件、资源打包
- Duilib
- DuiLib
- duilib
- 换肤
- 换肤
- 换肤
- 换肤手术
- CSS换肤技术
- 软件易容术-----换肤
- c#换肤(2005)
- c#换肤(2005)
- 换肤手术
- 软件易容术-----换肤
- 换肤测试程序
- 网站换肤
- GPUImage滤镜中的shader代码分析,及自定义滤镜
- jquery中ajax的使用
- Linux基础(14)/Linux日志系统(pending)
- 关于自己对okhttp的理解-----get请求异步用法
- 关于新手使用MyEclipse开发时文件上传找不到问题
- Duilib 换肤
- 电子商城(3)-adapter包下类
- 【easyui学习笔记】1.jQuery EasyUI 入门初窥
- GOF设计模式-建造者模式(builder)
- 使用cxf工具自动生成
- java前端easyui中datagrid表格点击表头排序
- Java模式的秘密--java常用的几种模式
- 优信二手车与时俱进坚持创新
- WPScan初体验