zoukankan      html  css  js  c++  java
  • MFC中使用Duilib--2

    在上一篇文章"MFC中使用Duilib--1"中, 没有用到资源文件,即xml,本篇讲怎样加载文件。

    1.  在exe输出目录下,创建一个skin目录,里面放入需要用到的图片文件,以及创建一个或几个xml文件,在这里,我创建一个skin.xml文件。内容如下:

    [html] view plaincopy
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <Window mininfo="200,360" size=" 480,320 ">  
    3.     <Default name="Button" value="normalimage="file='skinutton_nor.bmp' corner='4,2,4,2' fade='200' hsl='true'" hotimage="file='skinutton_over.bmp' corner='4,2,4,2' fade='200' hsl='true'" pushedimage="file='skinutton_down.bmp' corner='4,2,4,2' fade='200' hsl='true' " " />  
    4.         <Font name="幼圆" size="16" default="true" />  
    5.         <VerticalLayout bkcolor="#FFFF00FF">  
    6.             <Button name="changeskinbtn" height="20" text="测试按钮" maxwidth="120"/>  
    7.             <RichEdit name="testrichedit" bordercolor="#FF0000" bordersize="0" borderround="18,18" inset="4,2,4,2" bkcolor="#FFF2F5FA" bkcolor2="#FFA0A000" bkcolor3="#FFF2F5FA" font="1" multiline="true" vscrollbar="true" autovscroll="true" enabled="true" rich="true" readonly="false" text="测试richedit">  
    8.             </RichEdit>  
    9.             <Edit name="testedit" text="测试编辑框" />  
    10.         </VerticalLayout>  
    11. </Window>  


    需要用到的资源图片有button_nor.bmp、button_over.bmp、button_down.bmp。

     

    再将上节内容中的CTestDlg的HandleMessage函数中的WM_CREATE消息改成如下内容:

    1. LRESULT CTestDlg::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)  
    2. {  
    3.     if( uMsg == WM_CREATE ) {  
    4.         //m_pm.Init(m_hWnd);  
    5.         //CControlUI *pButton = new CButtonUI;  
    6.         //pButton->SetName(_T("closebtn"));  
    7.         //pButton->SetBkColor(0xFFFF0000);  
    8.         //m_pm.AttachDialog(pButton);  
    9.         //m_pm.AddNotifier(this);  
    10.         m_pm.Init(m_hWnd);  
    11.         CDialogBuilder builder;  
    12.         CControlUI *pRoot = builder.Create(L"skin\skin.xml", (UINT)0, NULL, &m_pm);  
    13.         ASSERT(pRoot && "Failed to parse XML");  
    14.         m_pm.AttachDialog(pRoot);  
    15.         m_pm.AddNotifier(this);  
    16.         return 0;  
    17.     }  
    18.     else if( uMsg == WM_DESTROY ) {  
    19.         ::PostQuitMessage(0);  
    20.     }  
    21.     LRESULT lRes = 0;  
    22.     if( m_pm.MessageHandler(uMsg, wParam, lParam, lRes) ) return lRes;  
    23.     return CWindowWnd::HandleMessage(uMsg, wParam, lParam);  
    24.   
    25. }  

    编译运行即可。

  • 相关阅读:
    MySQL优化二 缓存参数优化
    Ant Design Pro 学习三 新建组件
    Ant Design Pro 学习二 新建菜单-布局
    因素空间从概率论、模糊集走向人工智能---汪培庄
    纪念L.A. Zadeh教授
    Configure the Stanford segmenter for NLTK
    navicat 连接sqlserver提示要安装 sql server native client
    CentOS6.5+nginx+tomcat负载均衡集群
    CentOS6.5安装mysql5.1.73
    linux64位操作系统装32位jdk解决方法
  • 原文地址:https://www.cnblogs.com/jinsedemaitian/p/5589089.html
Copyright © 2011-2022 走看看