duilib进阶教程 -- XML嵌套及自定义控件 (4)
2014-05-01 01:50
537 查看
代码下载:http://download.csdn.net/detail/qq316293804/6433937
之前入门教程里已经讲过了自定义控件,这里借着迅雷播放器再次举个例子。
1、我们先给迅雷播放器加入下面那一排按钮。
和上个教程一样,我们可以选择直接放在主XML里面,也可以选择放到Container里面,在这里,为了让主XML的代码更简洁一点,我们选择放到单独的XML里面。而这个单独的XML就相当于一个自定义控件了,将控件名取为WndPlayPanel,XML取名为【WndPlayPanel.xml】,然后在CDuiFrameWnd::CreateControl里加入如下代码:
这样自定义控件就创建出来了,接着把主XML的<HorizontalLayout height="55" /> 换成<WndPlayPanel height="55" />,自定义控件WndPlayPanel就显示到最下方了。
2、同样的道理,我们将标题栏也放到单独的XML里,取名为Caption,XML取名为【Caption.xml】,在CDuiFrameWnd::CreateControl里加入类似代码,即可显示标题栏区域。
XML的嵌套是不是很简单呢,和入门教程里的一样哦,只不过入门教程里的自定义控件是一个win32按钮,而这里是一个XML。
仿迅雷播放器图片
迅雷播放器原图
对比一下正宗的迅雷播放器,可以发现咱们的仿制品还有很多粗糙的地方,比如【打开文件】按钮就完全见不得人啦,还有右上角的那三个按钮,再就是左上方的【播放】按钮、以及中间的那一块蓝色光影,都和正宗的有所差别。这些将留到后面的教程讲解~O(∩_∩)O~
之前入门教程里已经讲过了自定义控件,这里借着迅雷播放器再次举个例子。
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~
相关文章推荐
- duilib进阶教程 -- 图片和文字的位置调整 (5)
- duilib进阶教程 -- TreeView控件(6)
- duilib进阶教程 -- TreeView控件的不足 (7)
- duilib进阶教程 -- Label控件的bug (8)
- duilib进阶教程 -- TreeView控件的bug (9)
- duilib进阶教程 -- 各种控件的响应 (10)
- duilib进阶教程 -- 扩展duilib的消息 (11)
- duilib进阶教程 -- 改进窗口拖动 (12)
- duilib进阶教程 -- 响应windows原生消息和自定义消息(13)
- duilib进阶教程 -- Container控件的bug (14)
- duilib进阶教程 -- 设置资源路径 (15)
- duilib进阶教程 -- 改进List控件 (16)
- duilib进阶教程 -- 总结 (17)
- HDU 3415 Max Sum of Max-K-sub-sequence 最长K子段和
- 错误createSQLQuery is not valid without active transaction
- uiviewcontroller 转场放大缩小动画
- 18 Java design pattern questions.
- GUIComponents
- UESTC 360(1425) another LCIS
- iOS UIButton按钮 UILabel 文本