界面开发流程

m_mapTC2XML[_T("XXXX")]=_T("folder\\CDuiPageXxxx.xml");

folder为XML文件所在的子目录

else if(_tcsicmp(_T("folder\\CDuiPageXxxx.xml"),xml) == 0 )
pModel=new CDuiPageXxxx;

注意要包含相应的头文件

启动界面

有两种方式启动一个界面:

IDuiTranPage* pPage=CreateTranPage(_T("MAPT"),_T("基础数据"));
if(pPage)
{
    pPage->SetParameter(_T("start"),_T("matkl"));
    pPage->SetParameter(_T("new"),_T(""));

}

传递的参数会在IDuiTranPage对象的OnSetParameter函数中被接收到。

IDuiTranPage* pPage;
DuiLib::CControlUI* pCtrl;

pCtrl=NavPushView(_T("md\\CDuiPageMaraLS.xml"));

pPage=NavFindPageMode(pCtrl);
if(pPage)
{
    pPage->SetParameter(_T("IMa01"),(long)GetInterface(_T("IMa01")));
}

使用该方式启动一个界面,需要初始化一个导航控制器对象。

导航控制器是以TabLayout实现的,在XML里添加一个TabLayout,在C++功能类的H文件中声明一个对象:

DuiController::CNavigationController m_navController;

并在初始化函数里初始化导航控制器对象:

DuiLib::CTabLayoutUI* pTL = (DuiLib::CTabLayoutUI*)DuiGetDlgItem(_T("IDC_TL_MAIN"));
m_navController.Init(m_pTCMgr, m_pTranMgr, m_pPM, pTL);
SetNavigationController(&m_navController);