Duilib學習筆記《03》 控制項使用

2021-06-25 23:19:16 字數 1783 閱讀 9156

高階控制項

一些控制項的基本顯示效果就如同上面兩幅圖所示。實際上,在

duilib學習筆記《01》—duilib整體框架認識中我們就已經提到過duilib這個庫的組成,其中就提到了控制項這部分,如下圖所示:

對應到工程**中,實際上是分為了兩部分——corecontrol

core中包含的是所有控制項公用的部分,裡面主要是一些基類和繪製的封裝。

control中包含的就是各個不同的控制項的行為。

下面就挑選部分控制項的使用具體說明一下:

1)button控制項

按鈕控制項大家應該都不陌生了,在之前的空白窗體例子中左上角的系統操作按鈕就用的按鈕控制項。

edit控制項對應的有各種屬性(唯讀、數字、密碼。。。),而對應的僅僅只需要在xml中普通控制項的布局屬性中設分別設定readonly、numberonly、password即可。

3)combo控制項

xml布局中外側是,內層通過新增具體選擇。

4)list控制項

在實際中,我們可能需要向控制項中新增資料,而對於list中如何新增資料呢?如下所示:

// list控制項中新增資料

// 注意:新增list列表內容,必須先add(plistelement)新增元素,再settext進行元素值的設定

for (int i = 0; i < 10; i++)

除了上述這些列舉的這些控制項例子外,還有其它很多控制項沒能一一枚舉。但記住一點,一些複雜的東西都是由一些簡單的東西所組成的。對於控制項這部分的介紹,總結起來其實主要就是一下幾點:

1)布局

控制項在xml中布局基本都是

《控制項 屬性名=」屬性值」  />的形式書寫。

2)屬性設定

在前面,控制項的屬性我們基本都是在xml布局檔案找那個就新增設定了。這當然是乙個方法。但除此之外,還可以通過控制項對應提供的方法來設定。如edit控制項,我們可以直接在xml布局中可以設定唯讀、數字、密碼等屬性。同樣,我們也可以在edit所提供的方法中發現提供了setreadonly、setnumberonly、setpasswordmord等方法。具體使用中根據時間情況的需要在xml中設定或者通過控制項方法設定。

3)根據name獲取控制項

對於很多控制項,最終可能不僅僅只是乙個單純的顯示。很多時候還要和資料打交道。所以在具體處理時需要根據xml檔案中控制項的屬性name獲取指定的控制項進行相關操作。在**中控制項(以button為例,其它控制項獲取方法類似)獲取方式如下:

cbuttonui* m_pclosebtn;        

m_pclosebtn = static_cast(m_paintmanager.findcontrol(_t("closebtn")));

4)控制項使用

不同的控制項具體情況下,操作也不一樣。如edit控制項可用於輸入文字,數字等等。list控制項可以顯示不同列、不同行的資料。也就是說具體每個控制項的方法不一樣,對應的每個控制項的方法,duilib的control中包含的就是各個不同的控制項的行為方法了,使用時如果對於某些方法不熟悉,可以直接檢視。

最後附上本節對應的**:

DUILib學習筆記 訊息處理

win32下視窗訊息迴圈 msg msg while getmessage msg,null,0,0 1.訊息迴圈,在cpaintmanagerui messageloop duilib中增加了乙個訊息預處理,類似mfc pretranslatemessage msg msg while getme...

Duilib學習筆記《07》 資源載入

duilib的介面表現力能如此豐富,很大程度上得益於貼圖描述的簡單強大。通過之前的學習及參看相關例子,我們可以發現,在xml布局檔案中,不管是窗體背景還是控制項,都新增了對應的資源以此來美化介面。而很多人在參看例子時發現有著多種新增資源方式,其實總結下來可以簡單概括為一下兩種 簡單模式 使用檔名作為...

Duilib學習筆記《07》 資源載入

duilib的介面表現力能如此豐富,很大程度上得益於貼圖描述的簡單強大。通過之前的學習及參看相關例子,我們可以發現,在xml布局檔案中,不管是窗體背景還是控制項,都新增了對應的資源以此來美化介面。而很多人在參看例子時發現有著多種新增資源方式,其實總結下來可以簡單概括為一下兩種 簡單模式 使用檔名作為...