Duilib XML嵌套
duilib使用嵌套xml可以简化代码的书写,有利于模块化的页面布局分解,duilib库的xml嵌套主要有两种方式
方式一、以创建控件的方式嵌套xml
在CreateControl(LPCTSTR pstrClassname )中创建自定义的控件,并绑定到xml文件
CControlUI* FrameWnd::CreateControl( LPCTSTR pstrClassName )
{
if (_tcsicmp(pstrClassName, _T("Wnd_Xml_1")) == )
{
CDialogBuilder builder;
CControlUI* pUI = builder.Create(_T("Wnd_Xml_2.xml"));
return pUI;
}
else if (_tcsicmp(pstrClassName, _T("Wnd_Xml_2")) == )
{
CDialogBuilder builder;
CControlUI* pUI = builder.Create(_T("Wnd_Xml_2.xml"));
return pUI;
} return NULL;
}
FrameWnd的XML文件使用时
<Wnd_Xml_1 height="" />
<Wnd_Xml_2 height="" />
Wnd_Xml_1和Wnd_Xml_2则只需按照普通Window的方式来实现即可
方式二、使用TableLayout嵌套xml
<TabLayout name="wizard_setup_tab" >
<Include source="configpage.xml" />
<Include source="installingpage.xml" />
<Include source="finishpage.xml" />
<Include source="uninstallpage.xml" />
<Include source="uninstallingpage.xml" />
<Include source="uninstallfinishpage.xml" />
</TabLayout>
使用的时候需要在指定具体的xml进行加载
例如使用finishpage.xml
使用时需要如下操作:
CTabLayoutUI * setup_tab = static_cast <CTabLayoutUI*>(m_PaintManager.FindControl(_T("wizard_setup_tab")));
setup_tab->SelectItem();
方式三、以创建Frame的方式嵌套Frame从而达到嵌套xml的目的
g_pWordManagerFrame->Create(NULL, _T("WordManagerWnd"), UI_WNDSTYLE_DIALOG, WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW);
直接定义一个Frame来加载独立的xml
技术交流QQ群,欢迎大家加入:347769318
Duilib XML嵌套的更多相关文章
- Duilib XML嵌套/自定义控件
转载:https://www.jianshu.com/p/0fe8610dcc8d // https://github.com/Washington-DC/Duilib-ListView //这是 ...
- duilib进阶教程 -- XML嵌套及自定义控件 (4)
代码下载:http://download.csdn.net/detail/qq316293804/6433937 之前入门教程里已经讲过了自定义控件,这里借着迅雷播放器再次举个例子. 1.我们先给迅雷 ...
- DuiLib——xml配置项
DUILibxml配置项 根节点 子类 属性 类型 Window |--------Image 图片信息 | o------name string | o------restype string | ...
- sql for xml 嵌套
找很久.原来差一个ELEMENTS 关键字. 想到哪里插入子节点.就直接写一条语句,加一个ELEMENTS. 为什么baidu这么就都找不到.到处都是转来转去的东西.郁闷. select h.*,(s ...
- xml嵌套防止解析
举个例子 <?xml version="1.0" encoding="UTF-8"?><Messages><Message typ ...
- 2013 duilib入门简明教程 -- XML配置界面(6)
前面那些教程都是为了让小伙伴们从win32.MFC过渡到duilib,让大家觉得duilib不是那么陌生,如果大家现在还对duilib非常陌生的话,那就说明前面的教程做得不好,请大家在下面留言 ...
- 2013 duilib入门简明教程 -- XML基础类(7)
现在大家应该对XML描述界面不那么陌生了,那么我们做进一步介绍. 前面的教程我们写了很多代码,为的是让大家了解下基本流程,其实duilib已经对常用的操作做了很好的包装,正式使用时无需像前面的教程那样 ...
- duilib入门简明教程 -- XML基础类(7)
现在大家应该对XML描述界面不那么陌生了,那么我们做进一步介绍. 前面的教程我们写了很多代码,为的是让大家了解下基本流程,其实duilib已经对常用的操作做了很好的包装,正式使用时无需像前面的教程那样 ...
- duilib入门简明教程 -- XML配置界面(6)
前面那些教程都是为了让小伙伴们从win32.MFC过渡到duilib,让大家觉得duilib不是那么陌生,如果大家现在还对duilib非常陌生的话,那就说明前面的教程做得不好,请大家在下面留言, ...
随机推荐
- Block使用的简单总结
一.Block简单的使用 1.block当作参数来传递 如下定义一个没有返回值无参数的block,并把它作为参数,让系统调用,注意:这里是系统在调用,不是我们调用 那么为什么需要把block当作参数去 ...
- 【vue系列之二】详解vue-cli 2.0配置文件
上次给大家分享的是用vue-cli快速搭建vue项目,虽然很省时间和精力,但想要真正搞明白,我们还需要对其原理一探究竟. 大家拿到一个项目,要快速上手,正确的思路是这样的: 首先,如果在项目有read ...
- html加载时事件触发顺序
一般情况下页面的响应加载顺序时,域名解析-加载html-加载js和css-加载图片等其他信息. jq ready()的方法就是Dom Ready,他的作用或者意义就是:在DOM加载完成后就可以可以对D ...
- epoll模型的使用
1. 创建epoll句柄 int epfd = epoll_create(int size); 该函数生成一个epoll专用的文件描述符.它其实是在内核申请一空间,用来存放你想关注的socket fd ...
- Microsoft Offce 使用纪事:oneNote笔记本分区删除
OneNote 笔记本和分区删除 OneNote 目前无法在客户端和本地删除已有的笔记本和分区,只能通过OneDrive才能够从云端删除: step1 step2 step3 后记 由于需要登录One ...
- 模块:time,random,os,sys
时间模块 import time # print(time.time()) #时间戳 # print(time.strftime('%Y-%m-%d %X')) #格式化字符 # print(time ...
- python基础条件和循环
一.if语句 1.if后表达式返回值为true则执行其子代码块,然后此if 语句到此终结,否则进入下一分支判断,直到满足其中一个分支,执行后终结if 2.expression可以引入运算符:not,a ...
- C# post提交
WebForm 前台 <asp:Button ID="Button1" runat="server" Text="Button" On ...
- MYSQL 总结
1.数据库实质中访问的是 DBMC,数据库是一种存储介质 2.groub by 与 having 理解 group by 有一个原则,select后面的所有列中,没有使用聚合函数的列必须出现在 gro ...
- Linux上安装二进制文件MySQL详解
前言:昨天晚上搞了很久,终于搞清楚mysql的安装配置了,我真是太low了.当我在云服务器上登进Mysql时,真是高兴哈哈,咱一步一步来,彻底搞懂Mysql的安装配置. 我的安装环境: 阿里云服务器 ...