利用duilib的default屬性定製預設樣式

2021-09-12 14:30:38 字數 1442 閱讀 7559

下面我們介紹一下duilib的另一種特性,那就是可以定製預設樣式,這樣做有什麼好處呢?

假如我們有10個按鈕,按鈕樣式都一樣,如果用之前介紹的方式,則需要在每個button節點都指定背景、寬度、高度等資訊,一旦需要改動任何乙個屬性,則需要在10個按鈕裡面都改一次,所以為了方便修改,我們可以指定乙個預設樣式,就算有100個按鈕,我們也只需要改一次屬性。

方法如下:

給節點新增乙個default節點即可,其中name屬性填寫控制項的名字,value屬性新增控制項的屬性的值,不過需要將雙引號【"】換成【"】,單引號【』】換成【』】,單引號也可以不轉換。

xml如下(由於標題欄基本不再變化,所以後面的教程將省略

那一段xml)

size

="800,600"

mininfo

="600,400"

caption

="0,0,0,32"

sizebox

="4,4,4,4"

>

name

="button"

value

=" height="25" width="60" normalimage="file='btnstyle\xp\button_nor.png'

" hotimage="file='btnstyle\xp\button_over.png'

" pushedimage="file='btnstyle\xp\button_down.png'

" focusedimage="file='btnstyle\xp\button_focus.png'""

/>

bkcolor

="#fff0f0f0"

bkcolor2

="#ffaaaaa0"

>

>

text

="xp"

float

="true"

pos="20,14,0,0"

height

="25"

/>

text

="win7"

float

="true"

pos="20,50,0,0"

height

="25"

/>

text

= float

="true"

pos="20,86,0,0"

height

="25"

/>

float

="true"

pos="20,132,0,0"

height

="25"

/>

horizontallayout

>

verticallayout

>

window

>

duilib對MFC的支援

關注duilib很久了,前段時間剛好有個mfc專案,對ui要求比較高,苦於duilib是基於win32開發的,而我對win32只有皮毛的了解,只好試著看源 發現裡面有mfc的乙個demo,但是編譯通不過,無奈只好試著看作者的思路,經過幾天的摸索,終於成功運用到mfc專案中。先上效果圖,再解釋 上 1...

DUILIB的訊息處理HandleMessage

duilib還提供了另外一種響應的方法,即訊息對映dui begin message map,可以將dui msgtype click訊息對映到指定的函式 比如onclick 這和在notify判斷msg.stype是一樣的效果,具體請參見duilib的richlistdemo。先看看下面幾段 du...

Duilib中caption的問題

caption的作用是自繪標題欄,主要包括左上角的title和右上角的系統按鈕。修改xml 新增caption及圓角以及title部分 2在 修改 在子類中先將系統標題欄進行遮蔽,這樣得到灰色的不帶系統標題的對話方塊 lresult onncactivate uint umsg,wparam wpa...