DuiVision开发教程(4)-使用zip资源

从ZIP压缩文件中加载资源

DuiVision支持将所有的图片和XML资源文件放在一个zip格式的压缩文件中,如果使用zip格式的资源文件,需要在主程序代码中初始化部分指定使用的压缩文件的文件名。

如果使用zip资源文件,则resource.xml文件的位置默认是放在zip文件中的xml子目录下。建议zip文件按照xml、skins这样的子目录来压缩,见下面的压缩文件示例:

有zip资源文件的情况下,资源文件的加载并不一定是加载的zip文件中的内容,加载的优先级如下:

1)如果只有zip压缩文件,没有非压缩的xml和skins目录,则只会加载zip文件中的内容;

2)如果zip压缩文件和非压缩的xml和skins目录同时存在,则优先加载非压缩的xml和skins目录中的文件,对应的文件不存在的情况下才去zip文件中查找是否存在并加载。

之所以这样定义是方便通过非压缩的文件替换压缩文件中部分内容,以及方便调试和发布工程,调试阶段可以直接修改非压缩的目录中文件,不用每次修改之后都要再打一次压缩包。

说明:zip资源文件中仅支持包含xml、png、bmp类型的文件,其他文件无法加载,如果有其他类型的文件,请不要放在zip文件中,应该单独放在外部目录中加载。

将资源ZIP压缩文件作为EXE的内嵌资源

DuiVision支持将资源zip文件作为EXE的内嵌资源,将资源文件编译到exe中可以生成不依赖任务资源文件,可以独立运行的exe文件。

制作内嵌ZIP资源的方法:

1、将bin目录中的所有资源使用的子目录和文件进行压缩为ZIP文件(参考上一节压缩时候的目录结构);

2、将压缩文件作为资源添加到工程的资源中,添加时候资源类型一定要输入“UI”;

在VC工程的资源中添加资源,然后选择导入:

在导入对话框中选择资源zip文件,在弹出的自定义资源类型对话框中输入UI,必须使用这种类型,因为DuiVision中限定了加载的内嵌界面压缩包资源必须是”UI”类型的。

3、调用DuiSystem构造函数时候strResourceFile参数使用res:resid的格式,其中resid为已经添加的资源的ID,资源ID可以在resource.h文件中查到;

4、这样编译的EXE文件就可以使用内嵌的界面资源文件(如果EXE所在目录中有资源相关的目录和文件,还是会优先使用外部文件)。

时间: 2024-12-25 08:10:23

DuiVision开发教程(4)-使用zip资源的相关文章

DuiVision开发教程(2)-如何写一个简单的界面程序

基于DuiVision界面库开发的界面程序主要包括如下几部分内容: 1.资源定义,包括图片资源.各个窗口界面的xml定义文件 2.事件处理类代码,用于处理界面响应消息 3.其他业务逻辑代码 下面举例说明如何写一个简单的界面程序. 第一步:使用VC向导创建一个有两个tab页面的DuiVision工程 向导生成的解决方案文件如下: 默认有两个工程,分别是DuiVision库和应用程序工程.自动生成的代码目录中bin目录下的内容那个如下,bkimg目录存放窗口背景图片,skins目录存放图片资源,xm

DuiVision开发教程(5)-事件处理类编写

使用DuiVision开发的界面程序中,除了界面的描述之外,最主要的工作就是业务逻辑的处理,为了将业务逻辑和界面展示能够更好的分离,DuiVision中定义了事件处理基类,所有的业务逻辑都应该写在派生的事件处理类中,并把事件处理对象注册到相应的对话框或控件上,这样对应的子控件有事件需要处理的时候,就会自动调用注册的事件处理对象的相应函数.事件处理类只要在处理函数中根据控件的ID或名字决定该做什么事情,写相应的处理代码就可以.事件处理类中同时提供了一些函数方便根据ID或名字获取到对应的控件对象,并

DuiVision开发教程(3)-XML资源文件定义介绍

全局资源定义-resource.xml 基于DuiVision界面库的程序,需要有一个默认的资源定义XML文件,此文件默认的位置是exe文件所在路径下的xml\resource.xml文件,如果使用了zip压缩文件来保存所有资源文件,则此文件的位置是在压缩包中的xml\resource.xml文件.此文件中可以定义程序的全局配置.XML文件.字体.图片.文字等资源,示例如下: <?xml version="1.0" encoding="utf-8"?>

DuiVision开发教程(1)-创建DuiVision工程

DuiVision的源代码工程有两种类型:主程序和插件工程,可以通过人工方式创建DuiVision工程,也可以通过Visual Studio向导自动创建工程. 人工创建主程序的方法 1.创建一个基于DuiVision的界面程序是比较简单的,在VC中创建一个MFC对话框工程,注意工程要使用Unicode库: 工程创建之后,需要将默认对话框资源中的几个按钮和文字都删除,变成一个干净的对话框资源: 2.设置DuiVision的头文件和lib文件目录 将DuiVision的头文件和lib文件放在某个位置

DuiVision开发教程(19)-菜单

DuiVision菜单类是CDuiMenu,有两种显示的位置,一种是在窗口顶部某个按钮点击后可以下拉一个菜单,另一种是托盘图标的右键菜单. 窗口中的菜单定义方式是xml文件中设置某个按钮的action属性,以menu:开头,后面是菜单的XML文件名或XML定义名,例如下面这样定义: <imgbtn name="button.menu" pos="-110,0,-77,29" skin="IDB_BT_MENU" tip="菜单&q

DuiVision开发教程(15)-DUI文字控件基础类

CControlBaseFont类是DuiVision中所有支持文字属性的控件的基类. 此控件的属性列表如下: 属性名 类型 说明 title 字符串 控件的显示标题 font 字体 控件的字体,可以引用资源定义中定义的某个字体,默认字体是default fontname 字符串 直接指定某种字体 fontwidth 数字 直接指定字体宽度 height 数字 控件高度 valign 枚举 文字的垂直对齐模式,top.middle.bottom align 枚举 文字的水平对齐模式,left.c

DuiVision开发教程(14)-DUI控件基础类

DuiVision所有控件的基类是CControlBase类. CControlBase的属性如下表: 属性名 类型 说明 show 1|0 控件是否可见 disable 1|0 控件是否被禁用 pos 位置 控件的位置坐标,可以是左上角坐标,例如10,10,也可以是左上角+右下角坐标,例如10,10,200,100.支持正值和负值,正值表示从父控件左上角开始计算的值,负值表示从父控件右下角开始计算的值,例如-10,10表示从右边往左10像素,从上往下10像素的位置.也可以支持从父控件中间开始计

DuiVision开发教程(11)-托盘图标和托盘菜单

DuiVision界面库封装了Windows托盘图标的相关操作,可以创建托盘图标,并设置图标文件.托盘的tip信息,也可以处理托盘的单击.双击.右键菜单的事件. 通过调用下面的函数可以进行托盘的初始化: DuiSystem::Instance()->InitTray(); 初始化一般放在主的事件处理类OnInit函数中,可以参考demo程序的代码.设置托盘的图标文件盒tip信息可以调用DuiSystem的SetTrayIcon.SetTrayTip函数. 托盘的右键操作是打开右键菜单,右键菜单在

DuiVision开发教程(16)-区域控件

DuiVision的area控件(类名是CArea)可以设置区域的渐变透明度,不能响应鼠标事件,此控件的原理是画一个填充的透明度渐变矩形区域,透明度从矩形区域顶部究竟部均匀渐变. 控件的属性包含: 属性名 类型 说明 color 颜色 矩形区域的颜色 begin-transparent 字体 矩形区域顶部的起始透明度 end-transparent 字符串 矩形区域底部的终止透明度 DuiVision Demo程序的非常多界面都用到了area控件来实现渐变效果,比如,例如以下的登录对话框以下的渐