DuiLib

1、XML 文件编写配置
 注意: 保存为utf-8格式
        window节点不能少
name节点的值需要做到整个xml文件唯一。这个值是与代码交互的关键,用于代码中标识这一个控件具体对象。
可以使用HorizontalLayout或者VerticalLayout来进行布局时占位。


2、将建好的xml文件和所用到的图标文件打包形成一个压缩包(test.zip)。在VS 编译器中导入这个test.zip的资源。


3、在_tWinMain函数中加入以下代码: 
   CPaintManagerUI::SetInstance(hInstance);  
   CPaintManagerUI::SetResourcePath(CPaintManagerUI::GetInstancePath());   // 设置资源的默认路径(此处设置为和exe在同一目录


CTestUIDlg *pFrame = new CTestUIDlg(_T("test.xml"));  
pFrame->Create(NULL, _T("这是一个最简单的测试用exe,修改test.xml就可以看到效果"), UI_WNDSTYLE_FRAME, WS_EX_WINDOWEDGE);  
pFrame->CenterWindow();  
pFrame->ShowModal();  
CPaintManagerUI::MessageLoop(); //!消息循环  


4、CTestUIDlg即是我们的对话框类,它继承于WindowImplBase类,WindowImplBase类是一个XML的包装类,封装了常用操作,以方便大家使用。
   它是以XML作为界面描述的,所以用它的时候,我们必须将界面描述写到XML里。


5、主要的几个函数:
   (1)explicit  CTestUIDlg(LPCTSTR pszXMLPath);构造函数,同其他构造函数一样,做一些初始化操作。传入的参数是xml文件路径,也就是test.xml的路径。
        CTestUIDlg::CTestUIDlg( LPCTSTR pszXMLPath )


    (2) void InitWindow();初始化窗口信息,根据前面xml文件中我们说的控件唯一标识,创建空间,其余功能相当于MFC下的OnInitDialog(),用于一些控件的初始化之类的。
    
    (3) CControlUI* CreateControl(LPCTSTR pstrClassName);用于自定义控件的创建.
 
    (4) void Notify(TNotifyUI& msg);操作消息响应,一般用于点击操作等的响应。用于处理duilib自己定义的一套消息,其消息类型请参见duilib的UIDefine.h。


    (5) LRESULT HandleMessage(UINT uMsg,WPARAM wParam,LPARAM lParam);消息响应,类似于MFC的DefWindowProc()。 

猜你喜欢

转载自blog.csdn.net/qq_32619837/article/details/80729249