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()。
注意: 保存为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()。