duilib學習筆記02:界面布局


★:帶有系統標題框和邊框:

//函數原型
LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    if( uMsg == WM_CREATE ) {
        m_pm.Init(m_hWnd);
        CControlUI *pButton = new CButtonUI;
        pButton->SetName(_T("closebtn"));
        pButton->SetBkColor(0xFFFF0000);
        m_pm.AttachDialog(pButton);
        m_pm.AddNotifier(this);
        return 0;
    }
    else if( uMsg == WM_DESTROY ) {
        ::PostQuitMessage(0);
    }

    LRESULT lRes = 0;
    if( m_pm.MessageHandler(uMsg, wParam, lParam, lRes) ) {
        return lRes;
    }

    return CWindowWnd::HandleMessage(uMsg, wParam, lParam);
}

 

--------------------------------------------------------------------------------

 

★:去掉系統標題框和邊框:

//函數修改
LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    if( uMsg == WM_CREATE ) {
        m_pm.Init(m_hWnd);
        CControlUI *pButton = new CButtonUI;
        pButton->SetName(_T("closebtn"));
        pButton->SetBkColor(0xFFFF0000);
        m_pm.AttachDialog(pButton);
        m_pm.AddNotifier(this);
        return 0;
    }
    else if( uMsg == WM_DESTROY ) {
        ::PostQuitMessage(0);
    }
    //NewAdd...Start..For delect the title frame and the rim provide by system.
    else if( uMsg == WM_NCACTIVATE ) { if( !::IsIconic(m_hWnd) ) { return (wParam == 0) ? TRUE : FALSE; } } else if( uMsg == WM_NCCALCSIZE ) { return 0; } else if( uMsg == WM_NCPAINT ) { return 0; } //NewAdd...End..............................................................

    LRESULT lRes = 0;
    if( m_pm.MessageHandler(uMsg, wParam, lParam, lRes) ) {
        return lRes;
    }

    return CWindowWnd::HandleMessage(uMsg, wParam, lParam);
}

 

--------------------------------------------------------------------------------

 

★:使用XML進行頁面布局:

//函數修改
LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    if( uMsg == WM_CREATE ) {
        m_pm.Init(m_hWnd);

        //New Change...Start..For get a new layout by oneself...................
 CDialogBuilder builder; CControlUI* pRoot = builder.Create(_T("test1.xml"), (UINT)0, NULL, &m_pm); ASSERT(pRoot && "Failed to parse XML"); m_pm.AttachDialog(pRoot); //New Change...End......................................................

        m_pm.AddNotifier(this);

        return 0;
    }
    else if( uMsg == WM_DESTROY ) {
        ::PostQuitMessage(0);
    }
    //NewAdd...Start..For delect the title frame and the rim provide by system.
    else if( uMsg == WM_NCACTIVATE ) { if( !::IsIconic(m_hWnd) ) { return (wParam == 0) ? TRUE : FALSE; } } else if( uMsg == WM_NCCALCSIZE ) { return 0; } else if( uMsg == WM_NCPAINT ) { return 0; } //NewAdd...End..............................................................

    LRESULT lRes = 0;
    if( m_pm.MessageHandler(uMsg, wParam, lParam, lRes) ) {
        return lRes;
    }

    return CWindowWnd::HandleMessage(uMsg, wParam, lParam);
}

 

--------------------------------------------------------------------------------

test1.xml文件內容:

<?xml version="1.0" encoding="UTF-8"?>
<Window mininfo="200,360" size=" 480,320 ">
        <Font name="幼圓" size="16" default="true" />
        <VerticalLayout bkcolor="#FFFF00FF">
            <Button name="changeskinbtn" height="20" text="測試按鈕" maxwidth="120" />
            <RichEdit name="testrichedit" bordercolor="#FF0000" bordersize="0" borderround="18,18" inset="4,2,4,2" bkcolor="#A0F2F5FA" bkcolor2="#A0FF0000" bkcolor3="#A0F2F5FA" font="1" multiline="true" vscrollbar="true" autovscroll="true" enabled="true" rich="true" readonly="false" text="測試richedit">
            </RichEdit>
            <Edit name="testedit" text="測試編輯框" />
        </VerticalLayout>
        //添加下面一行內容,以修改按鈕外觀。
        //然后將button_nor.bmp、button_over.bmp、button_down.bmp(可在Duilib發行包中找到)放到exe目錄下。
        <Default name="Button" value="normalimage=&quot;file='button_nor.bmp' corner='4,2,4,2' fade='200' hsl='true'&quot; hotimage=&quot;file='button_over.bmp' corner='4,2,4,2' fade='200' hsl='true'&quot; pushedimage=&quot;file='button_down.bmp' corner='4,2,4,2' fade='200' hsl='true' &quot; " />
</Window>

 

--------------------------------------------------------------------------------


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM