DuiVision开发教程(3)-XML资源文件定义介绍
全局资源定义-resource.xml基于DuiVision界面库的程序,需要有一个默认的资源定义XML文件,此文件默认的位置是exe文件所在路径下的xmlresource.xml文件,如果使用了zip压缩文件来保存所有资源文件,则此文件的位置是在压缩包中的xmlresource.xml文件。此文件中可以定义程序的全局配置、XML文件、字体、图片、文字等资源,示例如下: <?xml version="1.0" encoding="utf-8"?>
<root>
<!--系统配置-->
<res type="cfg" name="defaultStyle" value="" />
<res type="cfg" name="logfile" value="demoui.log" />
<res type="cfg" name="loglevel" value="1" />
<res type="cfg" name="appMutex" value="MUTEX_DUIVISION_DEMO" />
<res type="cfg" name="enableDragFile" value="1" />
<res type="cfg" name="trayDbClickMsg" value="0" />
<!--风格设置-->
<res type="style" name="default" value="" />
<res type="style" name="qq" value="qq" />
<!—嵌套的XML资源定义文件-->
<res type="res" lang="zh-cn" file="xmldef_string_zh-cn.xml" />
<res type="res" lang="en-us" file="xmldef_string_en-us.xml" />
<!--XML资源-->
<res type="xml" name="dlg_main" file="xmldlg_main.xml" />
<res type="xml" name="dlg_skin" file="xmldlg_skin.xml" />
<res type="xml" name="dlg_about" file="xmldlg_about.xml" />
<res type="xml" name="dlg_login" file="xmldlg_login.xml" />
<res type="xml" name="dlg_msgbox" file="xmldlg_msgbox.xml" />
<!--字体资源-->
<res type="font" lang="zh-cn" name="default" font="微软雅黑" size="12" bold="false" />
<res type="font" lang="zh-cn" name="big" font="微软雅黑" size="14" bold="true" italic="false" underline="false" strikeout="false" />
<!--图片资源-->
<res type="img" name="IDB_MAIN_FRAME" file="skinsWindowsBack.png" />
<res type="img" name="IDB_BT_CLOSE" file="skinsBT_CLOSE.png" />
<res type="img" name="IDB_BT_MIN" file="skinsBT_MIN.png" />
<res type="img" name="IDB_BT_MENU" file="skinsBT_MENU.png" />
<res type="img" name="IDB_BT_SKIN" file="skinsBT_SKIN.png" />
<res type="img" name="IDB_TAB_1" file="skinsTab1.png" />
<res type="img" name="IDB_TAB_2" file="skinsTab2.png" />
<res type="img" name="IDB_ICON_INFO" file="skinsinfo.png" />
<res type="img" name="IDB_ICON_WARN" file="skinswarning.png" />
<res type="img" name="IDB_ICON_ERROR" file="skinserror.png" />
<res type="img" name="IDB_MENU_UPDATE" file="skinsMENU_UPDATE.png" />
<!--字符串资源-->
<res type="str" lang="zh-cn" name="APP_NAME" value="DUI测试程序" />
<res type="str" lang="zh-cn" name="APP_VER" value="1.0.0.1" />
<res type="str" lang="zh-cn" name="OK" value="确定" />
<res type="str" lang="zh-cn" name="CANCEL" value="放弃" />
<res type="str" lang="zh-cn" name="LOGIN" value="登录" />
</root>
这些定义的说明如下: 1、全局配置定义 <res type="xml" style="qq" name="dlg_main" file="xmldlg_wnd.xml" />
appMutex – 应用程序互斥量的名字,如果指定了此变量,则应用程序只能创建一个运行的进程,第二个进程运行时候判断如果存在此名字的互斥量,则退出 2、风格定义 <res type="img" name="IDB_SCROLL_V" file="skinsdefaultSCROLL_V.png" />
<res type="img" style="qq" name="IDB_SCROLL_V" file="skinsqqSCROLL_V.png" />
3、资源文件定义 4、xml文件定义 5、字体定义 6、图片资源定义 7、字符串资源定义 8、资源中的多语言定义 对话框定义文件程序中所有界面都是基于对话框或菜单等窗口的,每个对话框都需要有一个XML定义文件,用于描述对话框中的内容,对话框中主要是组成对话框的各个控件的定义,对话框的XML定义示例如下: <?xml version="1.0" encoding="utf-8"?>
<dlg name="dlg_about" title="MsgBox" width="450" height="230" appwin="1" resize="1" translucent="245" frame="" bkimg="skin:SKIN_PIC_7" crbk="000000" >
<base>
<imgbtn name="button.close" pos="-45,-0,29" skin="IDB_BT_CLOSE" show="1"/>
<text name="title" crtext="FFFFFF" crmark="800000" font="big" pos="10,5,200,25" title="关于[APP_NAME]" mask="[APP_NAME]" response="0" show="1" />
</base>
<body>
<area name="area-1" pos="0,40" begin-transparent="100" end-transparent="30" />
<area name="area-2" pos="0,40,-0" begin-transparent="30" end-transparent="30" />
<area name="area-3" pos="0,-37,-36" begin-transparent="70" end-transparent="70" />
<area name="area-4" pos="0,-36,-0" begin-transparent="88" end-transparent="88" />
<img name="icon" pos="25,45" width="128" height="128" image="skinsscriptnet.jpg" mode="normal" framesize="0" response="0" show="1" />
<text crtext="000000" pos="170,45,-25,65" title="[APP_NAME] [APP_VER]" />
<text crtext="000000" pos="170,65,85" title="2013-2014" />
<linkbtn name="linkbtn1" crtext="800000" pos="170,100,130" show="1" title="http://www.blueantstudio.net" href="http://www.blueantstudio.net" />
<button name="button.ok" skin="IDB_BT_DEFAULT" title="[OK]" pos="-100,-30,-20,-6" show="1" />
</body>
</dlg>
其中由几部分组成,dlg标签是对话框自身一些属性的描述,可以设置对话框的大小、背景图片、蒙版图片、透明度、应用程序窗口属性、改变大小属性等; 菜单定义文件菜单也是通过XML文件来定义,菜单XML的定义示例如下: <?xml version="1.0" encoding="utf-8"?>
<menu title="TrayMenu" width="250" item-height="25" left="30" frame-width="0" top-height="72" bottom-height="30" bkmode="mid" width-lt="5" height-lt="70" width-rb="5" height-rb="30" bkimg="skinsmenu360TrayMenu_218.png" >
<text pos="10,-10,25" crtext="FFFFFF" font="bold" title="DUI托盘菜单" />
<img pos="-60,5" width="48" height="48" image="skinsiconMovies.png" mode="normal" framesize="1" tip="图片" />
<text pos="10,-5" crtext="808080" font="bold" title="蓝蚂蚁工作室" />
<menuitem name="restore_mainwnd" skin="" image="" title="恢复窗口" font="bold" action="show-window:dlg_main" />
<menuitem separator="1" skin="IDB_MENU_SEP" />
<menuitem name="menu_main" menu="menu_main" />
<menuitem name="menuitem.sub" title="子菜单" width="150" skin="IDB_MENU_ARROW" bkmode="frame" bkimg="skin:IDB_MENU_BACK" frame-width="3" top-height="0" bottom-height="0" >
<menuitem name="360safe" title="360安全卫士" action="dlg:dlg_login" />
<menuitem name="360sd" title="360杀毒" action="dlg:dlg_login" />
<menuitem name="menuitem.360.sub1" title="360工具" width="150" skin="IDB_MENU_ARROW" bkmode="frame" bkimg="skin:IDB_MENU_BACK" frame-width="3" top-height="0" bottom-height="0" >
<menuitem name="360driver" title="360驱动修复" action="dlg:dlg_login" />
<menuitem name="360soft" title="360软件管家" action="dlg:dlg_login" />
</menuitem>
</menuitem>
<menuitem name="menuitem.runtest" title="执行进程" action="run:{platpath}DuiVisionDemo.2008d.exe|testcmd" />
<menuitem separator="1" skin="IDB_MENU_SEP" />
<menuitem name="item_help" skin="IDB_MENU_HELP" img-count="3" title="帮助" action="link:http://www.blueantstudio.net" />
<menuitem separator="1" skin="IDB_MENU_SEP" />
<menuitem name="close_app" skin="" image="" title="退出" action="close-window:dlg_main" />
</menu>
菜单定义文件的根节点是menu节点,menu节点可以定义一些菜单的属性,包括菜单的大小、图标区域的宽度、背景图片等。 DuiVision开源代码下载地址(github):https://github.com/blueantst/DuiVision (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |