代码仓库:https://github.com/yangpan4485/duilib/tree/develop/MyDemo
一、使用xml
duilib主打的界面制作方式是XML + UI引擎 + win32框架,一般很多ui相关的界面都是在xml中完成的,接下来我们将前面的一篇教程改为xml的方式来实现
二、具体代码
1、将原来OnCreate手动创建按钮的代码改到xml中去实现,然后在代码中解析xml文件
2、建立xml文件,命名为MyDemo.xml,放在根目录下面的resources文件夹里面,xml文件的内容如下
<?xml version="1.0" encoding="UTF-8"?>
<Window size="960,540"> <!-- 窗口的初始尺寸 -->
<HorizontalLayout bkcolor="#FF00FF00"> <!-- 整个窗口的背景 -->
<Button name="btnWnd" float="false" text="Hello World"/>
</HorizontalLayout>
</Window>
float为true表示绝对布局,float为false表示为相对布局,默认的float为false,所有可以不写float
3、设置xml的路径
DuiLib::CPaintManagerUI::SetInstance(hInstance);
DuiLib::CPaintManagerUI::SetResourcePath(DuiLib::CPaintManagerUI::GetInstancePath() + +_T("resources"));
4、在代码中加载xml文件
LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam) {
m_PaintManager.Init(m_hWnd);
DuiLib::CDialogBuilder builder;
DuiLib::CControlUI* pRoot = builder.Create(_T("MyDemo.xml"), (UINT)0, NULL, &m_PaintManager);
m_PaintManager.AttachDialog(pRoot);
m_PaintManager.AddNotifier(this);
return 0;
}
三、运行
可以看到运行结果和之前的结果是一样的,但是很明显的是在xml中写界面更方便,更简单了