码迷,mamicode.com
首页 > 其他好文 > 详细

第二章 DuiEngine资源文件介绍

时间:2014-07-28 15:37:33      阅读:1064      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   os   strong   文件   

一、初识DuiEngine的Skin Files

传统MFC界面主要是在一个.rc文件里进行窗口的布局,然后在resource.h中维系一个控件ID通过此控件ID在程序中通过此控件ID就可以访问到该控件,从而对指定控件做出各种操作;DuiEngine与之不同,但是思想仍然类似。以上章我们利用DuiEngineWizard生成的第一个工程为例:

bubuko.com,布布扣

DuiEngine将与界面相关的东西都扔到了一个叫Skin Files的文件夹里,其中:

1.image文件中主要用于存放工程中要使用到的相关图像,这个不要什么多余的讲解;

2.XML最为重要,里面存放两种东西:

    <1>界面的布局(顺便提一下与传统界面不同的是DuiEngine布局主要是通过xml文件来实现的)

    <2>为界面布局中控件提供样式支持,我暂且称其为样式文件(有点css的感觉但是又不太像,不知道为什么当时作者没有用xml+css做界面布局那),

     bubuko.com,布布扣

3.index.xml文件(我暂且称其为资源文件命名表),相当于工程中资源文件的一张命名表。

 

二、我们需要关心的文件

DuiEngine的作者为我们编写了一个辅助的命令程序residbuilder2.exe来帮助我们构建工程所需的资源id。

由于DuiEngine的工程没有一份很好的说明,所以对于初学者来说很难搞清楚Skin Files中哪些文件需要我们的关心。为此我专门阅读了residbuilder2.exe的源码

以我们的第一节课的建立的工程FirstDuiEngineDemo为例,当我们重新构建项目时仔细观察编译器下方会出现如下命令:

"XXXX\duiengine\tool\residbuilder2.exe"  -i "XXXX\duiengine\FirsrtDuiEngineDemo\FirsrtDuiEngineDemo\skin\index.xml" -y –p

skin -r .\duires\winres.rc2 -n .\duires\name2id.xml -h .\duires\winres.h

下面我们就上面这条命令来详细解说各个文件的作用:

First

-i "XXXX\duiengine\FirsrtDuiEngineDemo\FirsrtDuiEngineDemo\skin\index.xml"

命令-i表示读取index.xml,即读取工程中资源文件命名表

<resid type="XML" name="IDR_DUI_INIT"  file="xml\init.xml"  />
<resid type="XML" name="IDR_DUI_MSGBOX"   file="xml\dlg_msgbox.xml"  />
<resid type="XML" name="IDR_DUI_MAIN_DIALOG"   layer="1" file="xml\dlg_main.xml"/>

<resid type="IMGX" name="IDP_MAIN_DLG_FRAME"    file="image\dlg_bg_frame.png"  />
<resid type="IMGX" name="IDP_BTN_WND_CHECKBOX"     file="image\btn_wnd_checkbox.png"/>
<resid type="IMGX" name="IDP_BTN_WND_RADIO"  file="image\btn_wnd_radio.png"   />
<resid type="IMGX" name="IDP_FOCUS_CHECK"    file="image\focus_checkbox.png"/>
<resid type="IMGX" name="IDP_FOCUS_RADIO"    file="image\focus_radio.png"   />
<resid type="IMGX" name="IDP_BORDER_EDIT"    file="image\img_edit_border.png"   />


<resid type="IMGX" name="IDP_BTN_SYS_CLOSE"   file="image\btn_sys_close.png"    />
<resid type="IMGX" name="IDP_SCROLL"   file="image\scrollbar.bmp" />

其中主要存放了工程中所要用到的各种类型资源文件命名,DuiEngine支持一下一种资源文件类型定义:

    XML:例如我们界面布局文件和样式文件都是XML类型的

    ICO:图标资源

    BMP:位图资源

    IMGX:GDI+图片资源,当然位图也可以使用这种类型

细心的朋友可能看到了,在XML类型中name = IDR_DUI_MAIN_DIALOG后面有一个属性为layer = 1,它的作用我将过会做出说明

 

Second

-y –p skin

-y表示强制改写标志(说实话我也没搞懂什么意思)

-p表示设置当前路径为skin目录下

 

Three

-r .\duires\winres.rc2

表示将index.xml文件中的内容格式化到资源文件winres.rc2文件中

DEFINE_XML(IDR_DUI_INIT,	"skin\\xml\\init.xml")
DEFINE_XML(IDR_DUI_MSGBOX,	"skin\\xml\\dlg_msgbox.xml")
DEFINE_XML(IDR_DUI_MAIN_DIALOG,	"skin\\xml\\dlg_main.xml")
DEFINE_IMGX(IDP_MAIN_DLG_FRAME,	"skin\\image\\dlg_bg_frame.png")
DEFINE_IMGX(IDP_BTN_WND_CHECKBOX,	"skin\\image\\btn_wnd_checkbox.png")
DEFINE_IMGX(IDP_BTN_WND_RADIO,	"skin\\image\\btn_wnd_radio.png")
DEFINE_IMGX(IDP_FOCUS_CHECK,	"skin\\image\\focus_checkbox.png")
DEFINE_IMGX(IDP_FOCUS_RADIO,	"skin\\image\\focus_radio.png")
DEFINE_IMGX(IDP_BORDER_EDIT,	"skin\\image\\img_edit_border.png")
DEFINE_IMGX(IDP_BTN_SYS_CLOSE,	"skin\\image\\btn_sys_close.png")
DEFINE_IMGX(IDP_SCROLL,	"skin\\image\\scrollbar.bmp")

Four

-n .\duires\name2id.xml

表示将index.xml中XML资源中(布局文件XML)且属性中带有layer = ‘‘1"中的控件name转化为相应id存放到当前文件中,我们还记得在index.xml中为IDR_DUI_MAIN_DIALOG设置了layer="1"

所以这里将根据dlg_main.xml中控件的name属性生成其id对照存放到name2id.xml文件中

bubuko.com,布布扣

生成的name2id.xml内容如下:

<name2id name="DUI-DEMO" id="65536" />
<name2id name="maindlg" id="65537" />
<name2id name="btn_close" id="1" />
<name2id name="btn_msgbox" id="65538" />

Five

-h .\duires\winres.h

只有在生成项目时选择了“支持ID系统”才会出现此命令。

bubuko.com,布布扣

其内容与name2id.xml是一致的,只是采用#define宏定义格式

/*<------------------------------------------------------------------------------------------------->*/
/*该文件由residbuilder2生成,请不要手动修改*/
/*<------------------------------------------------------------------------------------------------->*/
#define	DUI-DEMO		65536
#define	maindlg		65537
#define	btn_close		1
#define	btn_msgbox		65538

第二章 DuiEngine资源文件介绍,布布扣,bubuko.com

第二章 DuiEngine资源文件介绍

标签:style   blog   http   color   使用   os   strong   文件   

原文地址:http://www.cnblogs.com/alterto/p/3784946.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!