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的目的

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

直接定義一個Frame來加載獨立的xml

 

技術交流QQ群,歡迎大家加入:347769318


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM