在上一篇文章"MFC中使用Duilib--1"中,没有用到资源文件,即xml,本篇讲怎样加载文件。
1. 在exe输出目录下,创建一个skin目录,里面放入需要用到的图片文件,以及创建一个或几个xml文件,在这里,我创建一个skin.xml文件。内容如下:
- <?xmlversion="1.0"encoding="UTF-8"?>
- <Windowmininfo="200,360"size="480,320">
- Defaultname="Button"value="normalimage="file='skinbutton_nor.bmp'corner='4,2,4,2'fade='200'hsl='true'"hotimage="file='skinbutton_over.bmp'corner='4,2'fade='200'hsl='true'"pushedimage="file='skinbutton_down.bmp'corner='4,2'fade='200'hsl='true'""/>
- Fontname="幼圆"size="16"default="true"/>
- VerticalLayoutbkcolor="#FFFF00FF">
- Buttonname="changeskinbtn"height="20"text="测试按钮"maxwidth="120"RichEditname="testrichedit"bordercolor="#FF0000"bordersize="0"borderround="18,18"inset="4,2"bkcolor="#FFF2F5FA"bkcolor2="#FFA0A000"bkcolor3="#FFF2F5FA"font="1"multiline="true"vscrollbar="true"autovscroll="true"enabled="true"rich="true"readonly="false"text="测试richedit"</RichEditEditname="testedit"text="测试编辑框"VerticalLayoutWindow>
需要用到的资源图片有button_nor.bmp、button_over.bmp、button_down.bmp。
再将上节内容中的CTestDlg的HandleMessage函数中的WM_CREATE消息改成如下内容:
LRESULTCTestDlg::HandleMessage(UINTuMsg,WPARAMwParam,87); background-color:inherit; font-weight:bold">LPARAMlParam)
- {
- if(uMsg==WM_CREATE){
-
-
- //pButton->SetName(_T("closebtn"));
- //pButton->SetBkColor(0xFFFF0000);
- //m_pm.AttachDialog(pButton);
- //m_pm.AddNotifier(this);
- m_pm.Init(m_hWnd);
- CDialogBuilderbuilder;
- CControlUI*pRoot=builder.Create(L"skinskin.xml",(UINT)0,NULL,&m_pm);
- ASSERT(pRoot&&"FailedtoparseXML");
- m_pm.AttachDialog(pRoot);
- m_pm.AddNotifier(this);
- return0;
- }
- elseif(uMsg==WM_DESTROY){
- ::PostQuitMessage(0);
- }
- LRESULTlRes=0;
- if(m_pm.MessageHandler(uMsg,wParam,lParam,lRes))returnlRes;
- returnCWindowWnd::HandleMessage(uMsg,lParam);
-
- }
编译运行即可。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|