当前审阅,换肤.
1.主窗体接收到了_T("valuechanged") 或者 _T("movevaluechanged")消息后,先判断是否是要改变播放列表透明
度的事件,确认后去改变透明度。有些朋友不知道怎么去改变duilib的一个控件的透明度,其实很简单:为对应的控件
设置一个背景图并且设置fade属性,比如bkimage="file='UI\LeftTab\List_bk.png' fade='122'",背景图是任意的,关键
在于fade属性,他是改变图片透明度的属性,所以只要动态修改这个属性的值就可以改变任意控件的背景的透明度
了。
2.
问题出在xml文件中,用xml文件动态创建控件是用duilib时的常用功能,而我们千万不要在创建自定义控件的xml文件中使用<Font>标签,
否则每次创建一个自定义控件,就会增加相应数量的font对象,而font对象是直接在CPaintManager类中增加的,
同样也是在程序结束时才会被释放。偶尔一两个这样的控件无所谓,但是如果用在List中被创建了成千上百个,
gdi泄漏就太明显!所以<Font>标签最好统一声明到主xml文件或者专门声明资源的xml文件中!切记
3.贴图
如果是从文件加载,设置file属性,如file='XXX.png',不要写res和restype属性
复杂模式使用带属性的字符串表示贴图方式,既支持从文件中加载图片,也可以从资源中加载,具体如下:
如果是从文件加载,设置file属性,如file='XXX.png',不要写res和restype属性
如果从资源加载,设置res和restype属性,不要设置file属性
dest属性的作用是指定图片绘制在控件的一部分上面(绘制目标位置)
source属性的作用是指定使用图片的一部分
corner属性是指图片安装scale9方式绘制
mask属性是给不支持alpha通道的图片格式(如bmp)指定透明色
fade属性是设置图片绘制的透明度
hole属性是指定scale9绘制时要不要绘制中间部分
xtiled属性设置成true就是指定图片在x轴不要拉伸而是平铺,ytiled属性设置成true就是指定图片在y轴不要拉伸而是平铺:
4.换肤
Duilib是一个以贴图为主要表现手段的界面库,实现换肤非常简单,可以通过给控件设置不同的图片来实现换肤,比如给需要换肤的控件调用CControlUI::SetBkImage。但是针对换肤功能,Duilib提供了更为简单的方法,即使用CPaintManagerUI::ReloadSkin。
假设我们给程序创建了两套皮肤,分别打包成skin1.zip和skin2.zip,在程序运行的时候,执行:
CPaintManagerUI::SetResourceZip(_T("skin2.zip")); // 或者skin1.zip
CPaintManagerUI::ReloadSkin();
这样简单的两行代码,就实现了全部窗口从skin1皮肤到skin2皮肤的切换。你也可以随时再次调用上面两行代码,把皮肤切换回去。
5.资源打包
Duilib使用资源打包功能非常简单,在程序开发完成后只需做两个步骤即可:
进入资源目录,然后使用具备zip压缩功能的软件(如winrar、winzip、7zip等)把布局xml和图片等资源压缩到一个zip文件包里。
在WinMain函数中CPaintManagerUI::SetInstance(hInstance)的后面加入CPaintManagerUI::SetResourceZip(_T("xxx.zip")),如
int APIENTRYWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPSTR /*lpCmdLine*/,int nCmdShow)
{
CManager::SetInstance(hInstance);
CManager::SetResourcePath(CManager::GetInstancePath());
CPaintManagerUI::SetResourceZip(_T("xxx.zip"));
// ……
}
这样就完成了资源打包功能,发布程序只需要把exe、dll和zip文件带上就行了。有时为了需要,也可以修改.zip为其他扩展名,比如.dat。
6.文件拖拽功能.
http://blog.csdn.net/zhuhongshu/article/details/39154625
http://blog.csdn.net/zhuhongshu/article/details/41144283
7.拓展Edit布局功能
http://blog.csdn.net/zhuhongshu/article/details/41208207
最后一次链接:http://blog.csdn.net/zhuhongshu/article/category/2425219/1<看到第一面了,已筛选完了>
1.主窗体接收到了_T("valuechanged") 或者 _T("movevaluechanged")消息后,先判断是否是要改变播放列表透明
度的事件,确认后去改变透明度。有些朋友不知道怎么去改变duilib的一个控件的透明度,其实很简单:为对应的控件
设置一个背景图并且设置fade属性,比如bkimage="file='UI\LeftTab\List_bk.png' fade='122'",背景图是任意的,关键
在于fade属性,他是改变图片透明度的属性,所以只要动态修改这个属性的值就可以改变任意控件的背景的透明度
了。
2.
问题出在xml文件中,用xml文件动态创建控件是用duilib时的常用功能,而我们千万不要在创建自定义控件的xml文件中使用<Font>标签,
否则每次创建一个自定义控件,就会增加相应数量的font对象,而font对象是直接在CPaintManager类中增加的,
同样也是在程序结束时才会被释放。偶尔一两个这样的控件无所谓,但是如果用在List中被创建了成千上百个,
gdi泄漏就太明显!所以<Font>标签最好统一声明到主xml文件或者专门声明资源的xml文件中!切记
3.贴图
如果是从文件加载,设置file属性,如file='XXX.png',不要写res和restype属性
复杂模式使用带属性的字符串表示贴图方式,既支持从文件中加载图片,也可以从资源中加载,具体如下:
如果是从文件加载,设置file属性,如file='XXX.png',不要写res和restype属性
如果从资源加载,设置res和restype属性,不要设置file属性
dest属性的作用是指定图片绘制在控件的一部分上面(绘制目标位置)
source属性的作用是指定使用图片的一部分
corner属性是指图片安装scale9方式绘制
mask属性是给不支持alpha通道的图片格式(如bmp)指定透明色
fade属性是设置图片绘制的透明度
hole属性是指定scale9绘制时要不要绘制中间部分
xtiled属性设置成true就是指定图片在x轴不要拉伸而是平铺,ytiled属性设置成true就是指定图片在y轴不要拉伸而是平铺:
4.换肤
Duilib是一个以贴图为主要表现手段的界面库,实现换肤非常简单,可以通过给控件设置不同的图片来实现换肤,比如给需要换肤的控件调用CControlUI::SetBkImage。但是针对换肤功能,Duilib提供了更为简单的方法,即使用CPaintManagerUI::ReloadSkin。
假设我们给程序创建了两套皮肤,分别打包成skin1.zip和skin2.zip,在程序运行的时候,执行:
CPaintManagerUI::SetResourceZip(_T("skin2.zip")); // 或者skin1.zip
CPaintManagerUI::ReloadSkin();
这样简单的两行代码,就实现了全部窗口从skin1皮肤到skin2皮肤的切换。你也可以随时再次调用上面两行代码,把皮肤切换回去。
5.资源打包
Duilib使用资源打包功能非常简单,在程序开发完成后只需做两个步骤即可:
进入资源目录,然后使用具备zip压缩功能的软件(如winrar、winzip、7zip等)把布局xml和图片等资源压缩到一个zip文件包里。
在WinMain函数中CPaintManagerUI::SetInstance(hInstance)的后面加入CPaintManagerUI::SetResourceZip(_T("xxx.zip")),如
int APIENTRYWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPSTR /*lpCmdLine*/,int nCmdShow)
{
CManager::SetInstance(hInstance);
CManager::SetResourcePath(CManager::GetInstancePath());
CPaintManagerUI::SetResourceZip(_T("xxx.zip"));
// ……
}
这样就完成了资源打包功能,发布程序只需要把exe、dll和zip文件带上就行了。有时为了需要,也可以修改.zip为其他扩展名,比如.dat。
6.文件拖拽功能.
http://blog.csdn.net/zhuhongshu/article/details/39154625
http://blog.csdn.net/zhuhongshu/article/details/41144283
7.拓展Edit布局功能
http://blog.csdn.net/zhuhongshu/article/details/41208207
最后一次链接:http://blog.csdn.net/zhuhongshu/article/category/2425219/1<看到第一面了,已筛选完了>