代碼下載:http://download.csdn.net/detail/qq316293804/6433937
之前入門教程里已經講過了自定義控件,這里借着迅雷播放器再次舉個例子。
1、我們先給迅雷播放器加入下面那一排按鈕。

和上個教程一樣,我們可以選擇直接放在主XML里面,也可以選擇放到Container里面,在這里,為了讓主XML的代碼更簡潔一點,我們選擇放到單獨的XML里面。而這個單獨的XML就相當於一個自定義控件了,將控件名取為WndPlayPanel,XML取名為【WndPlayPanel.xml】,然后在CDuiFrameWnd::CreateControl里加入如下代碼:
CControlUI* CDuiFrameWnd::CreateControl( LPCTSTR pstrClassName ) { if (_tcsicmp(pstrClassName, _T("WndPlayPanel")) == 0) { CDialogBuilder builder; CControlUI* pUI = builder.Create(_T("WndPlayPanel.xml")); return pUI; } return NULL; }
這樣自定義控件就創建出來了,接着把主XML的<HorizontalLayout height="55" /> 換成<WndPlayPanel height="55" />,自定義控件WndPlayPanel就顯示到最下方了。
2、同樣的道理,我們將標題欄也放到單獨的XML里,取名為Caption,XML取名為【Caption.xml】,在CDuiFrameWnd::CreateControl里加入類似代碼,即可顯示標題欄區域。

XML的嵌套是不是很簡單呢,和入門教程里的一樣哦,只不過入門教程里的自定義控件是一個win32按鈕,而這里是一個XML。
仿迅雷播放器圖片

迅雷播放器原圖

對比一下正宗的迅雷播放器,可以發現咱們的仿制品還有很多粗糙的地方,比如【打開文件】按鈕就完全見不得人啦,還有右上角的那三個按鈕,再就是左上方的【播放】按鈕、以及中間的那一塊藍色光影,都和正宗的有所差別。這些將留到后面的教程講解~O(∩_∩)O~