Duilib学习笔记《03》— 控件使用
生活随笔
收集整理的這篇文章主要介紹了
Duilib学习笔记《03》— 控件使用
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在前面已經(jīng)對duilib有個一個基本的了解,并且創(chuàng)建了簡單的空白窗體。這僅僅只是一個開始,如何去創(chuàng)建一個絢麗多彩的界面呢?這就需要一些控件元素(按鈕、文本框、列表框等等)來完善。
一. Duilib控件簡介
在之前空白窗體的基礎(chǔ)上,在界面上添加了一些控件,讓大家先對這些控件效果有個基本的認識。如下圖所示: 基本控件 高級控件 一些控件的基本顯示效果就如同上面兩幅圖所示。實際上,在Duilib學習筆記《01》—duilib整體框架認識中我們就已經(jīng)提到過Duilib這個庫的組成,其中就提到了控件這部分,如下圖所示: 對應(yīng)到工程代碼中,實際上是分為了兩部分——Core?和?Control。 Core中包含的是所有控件公用的部分,里面主要是一些基類和繪制的封裝。 Control中包含的就是各個不同的控件的行為。 ? ? ? ?二. Duilib控件使用
下面就挑選部分控件的使用具體說明一下: 1)Button控件 按鈕控件大家應(yīng)該都不陌生了,在之前的空白窗體例子中左上角的系統(tǒng)操作按鈕就用的按鈕控件。 <Button name="closeBtn" maxwidth="45" maxheight="17" normalimage="file='sys_dlg_close.png' source='90,0,135,17'" hotimage="file='sys_dlg_close.png' source='45,0,90,17'" pushedimage="file='sys_dlg_close.png' source='0,0,45,17'"/> 在XML布局中以<Button ?屬性名=”屬性值” />的形式書寫。 如上面的closeBtn的例子。其中:name表示控件名稱,同一窗口內(nèi)必須唯一;maxwidth、maxheight表示分別控件的最大寬度、最大高度;normalimage、hotimage、pushedimage分別表示按鈕的三狀態(tài)(正常狀態(tài)、鼠標移動上去的狀態(tài)、鼠標按下的狀態(tài))。 當然,除了例子中的這些屬性外,每個控件對應(yīng)的都還有很多屬性,具體可以查閱屬性列表,根據(jù)實際需要使用。 2)Edit控件 <Edit name="button1" tooltip="普通控件" text="普通控件" bkimage="res='button_pushed.png' corner='6,6,6,6'" />Edit控件對應(yīng)的有各種屬性(只讀、數(shù)字、密碼。。。),而對應(yīng)的僅僅只需要在XML中普通控件的布局屬性中設(shè)分別設(shè)置readonly、numberonly、password即可。
3)Combo控件 <Combo name="font_type" droptype="droplist" width="100" height="22" textpadding="4,1,1,1" normalimage="file='combo.png' source='0,0,100,22' corner='2,2,20,2'" hotimage="file='combo.png' source='0,22,100,44' corner='2,2,22,2'" pushedimage="file='combo.png' source='0,44,100,66' corner='2,2,22,2'"><ListLabelElement text="微軟雅黑" selected="true" height="23" /><ListLabelElement text="宋體" height="23" /><ListLabelElement text="黑體" height="23" /><ListLabelElement text="幼圓" height="23" /><ListLabelElement text="楷體" height="23" /> </Combo>XML布局中外側(cè)是<Combo></Combo>,內(nèi)層通過<ListLabelElement />添加具體選擇。
4)List控件 <List name="listview" vscrollbar="true" hscrollbar="true" headerbkimage="file='list_header_bg.png'" itemtextstyle="center"><ListHeader height="24" menu="true"><ListHeaderItem text="姓名" width="100" hotimage="file='list_header_hot.png'" pushedimage="file='list_header_pushed.png'" sepimage="file='list_header_sep.png'" sepwidth="1" /><ListHeaderItem text="學號" width="200" hotimage="file='list_header_hot.png'" pushedimage="file='list_header_pushed.png'" sepimage="file='list_header_sep.png'" sepwidth="1" /><ListHeaderItem text="成績" width="200" hotimage="file='list_header_hot.png'" pushedimage="file='list_header_pushed.png'" sepimage="file='list_header_sep.png'" sepwidth="1" /></ListHeader> </List>在實際中,我們可能需要向控件中添加數(shù)據(jù),而對于List中如何添加數(shù)據(jù)呢?如下所示:
// List控件中添加數(shù)據(jù) // 注意:添加List列表內(nèi)容,必須先Add(pListElement)添加元素,再SetText進行元素值的設(shè)置 for (int i = 0; i < 10; i++) {CListTextElementUI* pListElement = new CListTextElementUI;pListElement->SetTag(i);m_pList->Add(pListElement);pListElement->SetText(0, _T("WHO1753"));pListElement->SetText(1, _T("程序設(shè)計"));pListElement->SetText(2, _T("100")); }三. 總結(jié)
除了上述這些列舉的這些控件例子外,還有其它很多控件沒能一一列舉。但記住一點,一些復雜的東西都是由一些簡單的東西所組成的。對于控件這部分的介紹,總結(jié)起來其實主要就是一下幾點: 1)布局 控件在XML中布局基本都是<控件 屬性名=”屬性值” ?/>的形式書寫。 2)屬性設(shè)置 在前面,控件的屬性我們基本都是在XML布局文件找那個就添加設(shè)置了。這當然是一個方法。但除此之外,還可以通過控件對應(yīng)提供的方法來設(shè)置。如Edit控件,我們可以直接在XML布局中可以設(shè)置只讀、數(shù)字、密碼等屬性。同樣,我們也可以在Edit所提供的方法中發(fā)現(xiàn)提供了SetReadonly、SetNumberOnly、SetPasswordMord等方法。具體使用中根據(jù)時間情況的需要在XML中設(shè)置或者通過控件方法設(shè)置。 3)根據(jù)name獲取控件 對于很多控件,最終可能不僅僅只是一個單純的顯示。很多時候還要和數(shù)據(jù)打交道。所以在具體處理時需要根據(jù)XMl文件中控件的屬性name獲取指定的控件進行相關(guān)操作。在代碼中控件(以Button為例,其它控件獲取方法類似)獲取方式如下: CButtonUI* m_pCloseBtn; m_pCloseBtn = static_cast<CButtonUI*>(m_PaintManager.FindControl(_T("closeBtn")));4)控件使用
不同的控件具體情況下,操作也不一樣。如Edit控件可用于輸入文本,數(shù)字等等。List控件可以顯示不同列、不同行的數(shù)據(jù)。也就是說具體每個控件的方法不一樣,對應(yīng)的每個控件的方法,Duilib的Control中包含的就是各個不同的控件的行為方法了,使用時如果對于某些方法不熟悉,可以直接查看。最后附上本節(jié)對應(yīng)的代碼:代碼下載
轉(zhuǎn)載于:https://www.cnblogs.com/MrYuan/p/4971980.html
總結(jié)
以上是生活随笔為你收集整理的Duilib学习笔记《03》— 控件使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [cerc2012][Gym100624
- 下一篇: 博客园中的源代码格式显示