Duilib中各個類的簡單介紹

來源:互聯網
上載者:User

DirectUI產品網站www.directui.com,做的很專業;另一家是UIEASY,網址www.uieasy.com,一個輕量級皮膚庫DSkinLite。但是,網上關於DirectUI的技術文章卻很少;早在 6/26/2005,一個國外的程式員就已經寫了一個開源的DirectUI例子,應該算是國內所有directui介面庫的起源了,網址http://www.viksoe.dk/code/windowless1.htm,探討一種實現的可能性和思路,和實際應用雖有一定距離,不過卻是一個很好的學習資料。再後來,一個國內的程式員“當個傻瓜蛋”,基於此代碼,進行重構和修正Bug,並放到了google上開源,網址http://code.google.com/p/duilib/,svn
checkouthttp://duilib.googlecode.com/svn/trunk/ duilib-read-only。

本人通過學習這個duilib的原始碼,學到了很多知識、思路和經驗,分享給看到此文的朋友,共同探討DirectUI技術,並歡迎大家加入到開發開源DirectUI皮膚庫的行列當中。分析難免有誤,見諒!

一、核心類
1.        CWindowWnd,視窗對象管理父類,主要作用:

1)        建立視窗。

2)        視窗訊息過程處理。

3)        提供視窗子類化與超類化介面。

2.        CDialogBuilder,控制項布局類,主要作用:

1)        讀取XML指令碼,分析指令碼,構建控制項樹。

2)        建立控制項對象。

3.        CPaintManagerUI,視窗訊息及圖形繪製管理器類,與視窗綁定,主要作用:

1)        繪製控制項。

2)        訊息管理。

3)        事件通知。

4.        INotifyUI,事件通知抽象類別,主要作用:

1)        重載Notify虛函數,處理事件通知。

二、控制項類
1.        CControlUI,控制項管理父類,主要作用:

1)        控制項的通用基類,提供控制項通用屬性管理。

2.        CLabelUI,靜態標籤類,父類CControlUI。

3.        CButtonUI,按鈕類,父類CLabelUI。

4.        COptionUI,選擇按鈕類,父類CButtonUI。

5.        CTextUI,靜態文本類,父類CLabelUI。

6.        CProgressUI,進度條類,父類CLabelUI。

7.        CSliderUI,父類CProgressUI。

8.        CEditUI,編輯框類,父類CLabelUI。

9.        CListUI,列表框類,父類CVerticalLayoutUI、IListUI。

1)        CListHeaderUI,父類CHorizontalLayoutUI。

2)        CListHeaderItemUI,列表頭類,父類CControlUI。

3)        CListTextElementUI,類表文本類,父類CListLabelElementUI。

4)        CListLabelElementUI,父類CListElementUI。

10.    CComboUI,組合框類,父類CContainerUI、IListOwnerUI。

11.    CActiveXUI,ActiveX控制項類,父類CControlUI、 IMessageFilterUI。

12.    CContainerUI,容器類,父類CControlUI、IContainerUI。

13.    CTabLayoutUI,選項頁布局類,父類CContainerUI。

14.    CTileLayoutUI,父類CContainerUI。

15.    CDialogLayoutUI,對話方塊布局類,父類CContainerUI。、

16.    CVerticalLayoutUI,垂直布局類,父類CContainerUI。

17.    CHorizontalLayoutUI,水平布局類,父類CContainerUI。

18.    CListExpandElementUI,父類CListTextElementUI。

19.    CListContainerElementUI,父類CContainerUI、IListItemUI。

三、輔助類
       1.        CStdPtrArray,指標數組。

2.        CStdValArray,資料數組。

3.        CStdString,字串數組。

4.        CStdStringPtrMap,字串指標映射數組。

轉自:http://note.sdo.com/u/icez/n/mvO-X~jyVnpFnM01A0000m

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.