Duilib中的XML嵌套

duilib使用嵌套xml可以简化代码的书写,有利于模块化的页面布局分解,duilib库的xml嵌套主要有两种方式

方式一、以创建控件的方式嵌套xml

在CreateControl(LPCTSTR pstrClassname )中创建自定义的控件,并绑定到xml文件

 1 CControlUI* FrameWnd::CreateControl( LPCTSTR pstrClassName )
 2 {
 3     if (_tcsicmp(pstrClassName, _T("Wnd_Xml_1")) == 0)
 4     {
 5         CDialogBuilder builder;
 6         CControlUI* pUI = builder.Create(_T("Wnd_Xml_2.xml")); 
 7         return pUI;
 8     }
 9     else if (_tcsicmp(pstrClassName, _T("Wnd_Xml_2")) == 0)
10     {
11         CDialogBuilder builder;
12         CControlUI* pUI = builder.Create(_T("Wnd_Xml_2.xml")); 
13         return pUI;
14     }
15 
16     return NULL;
17 }

FrameWnd的XML文件使用时

 <Wnd_Xml_1 height="520" />
 <Wnd_Xml_2 height="521" />

Wnd_Xml_1和Wnd_Xml_2则只需按照普通Window的方式来实现即可

 

方式二、使用TableLayout嵌套xml

1       <TabLayout name="wizard_setup_tab"  >
2           <Include source="configpage.xml" />
3         <Include source="installingpage.xml" />        
4           <Include source="finishpage.xml" />
5           <Include source="uninstallpage.xml" />
6         <Include source="uninstallingpage.xml" />        
7           <Include source="uninstallfinishpage.xml" />
8     </TabLayout>
 

使用的时候需要在指定具体的xml进行加载

例如使用finishpage.xml

使用时需要如下操作:

CTabLayoutUI * setup_tab = static_cast <CTabLayoutUI*>(m_PaintManager.FindControl(_T("wizard_setup_tab")));
    setup_tab->SelectItem(2);

 

方式三、以创建Frame的方式嵌套Frame从而达到嵌套xml的目的

   g_pWordManagerFrame->Create(NULL, _T("WordManagerWnd"), UI_WNDSTYLE_DIALOG, WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW);

直接定义一个Frame来加载独立的xml

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值