Duilib—编写界面xml

为了使用xml进行界面布局,需要把前面的Duilib程序框架中的HandleMessage稍微改动一下:  

  LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)

    {

        if( uMsg == WM_CREATE ) {

            m_pm.Init(m_hWnd);

            CDialogBuilder builder;

            CControlUI* pRoot = builder.Create(_T("test1.xml"), (UINT)0, NULL, &m_pm);

            ASSERT(pRoot && "Failed to parse XML");

            m_pm.AttachDialog(pRoot);

            m_pm.AddNotifier(this);

            return 0;

}

        else if( uMsg == WM_DESTROY ) {

            ::PostQuitMessage(0);

        }

        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;

        }

        LRESULT lRes = 0;

        if( m_pm.MessageHandler(uMsg, wParam, lParam, lRes) ) return lRes;

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

}

灰色部分表示改动的部分。

然后我们来编写一个简单的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>

</Window>

把以上xml保存为test1.xml,主要保存格式为utf-8(不要使用windows自带的记事本保存,可以使用ultraedit、editplus之类具备xml编辑能力的编辑器保存)。然后运行程序,可以看到如下效果:

好像还不是太难看,不过按钮好像看起来不大像按钮,那就给贴个图把,将一下这行加入到Window标签下:

<Default name="Button" value="normalimage="file='button_nor.bmp' corner='4,2,4,2' fade='200' hsl='true'" hotimage="file='button_over.bmp' corner='4,2,4,2' fade='200' hsl='true'" pushedimage="file='button_down.bmp' corner='4,2,4,2' fade='200' hsl='true' " " />

然后将button_nor.bmp、button_over.bmp、button_down.bmp(可在Duilib发行包中找到)放到exe目录下,运行程序,可以看到:

可以看到按钮的显示已经改变了,我们继续将Richedit换个背景,将Richedit的背景色改成bkcolor="#FFF2F5FA" bkcolor2="#FFA0A000" bkcolor3="#FFF2F5FA",我们得到下面的结果:

继续修改这个xml,我们通过设置xml中控件的属性,可以很简单的实现自由调整界面。

 

深圳Duilib交流群332584099
问题咨询微信18926447914,可拉入深圳程序员交流群,有大厂HR直连招聘内推,还有各路大神

发布了259 篇原创文章 · 获赞 67 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/linjingtu/article/details/89843213