码迷,mamicode.com
首页 > 其他好文 > 详细

Duilib 弹出菜单

时间:2015-05-22 11:43:26      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:dui menu

针对Duilib中的菜单,首先我们需要明白为什么不能(不是一定不能,为了方便)按照Duilib的设计初衷,在创建菜单的时候应该使用CMenuUI而是使用CMenuWnd,类似于CComboUI,在使用CComboUI的时候我们只需要创建CComboUI 设置属性即可。通过如下代码:

技术分享

从上可以看出ComboUI需要一个m_pOwner->GetManager(),来设置对象,对于ComboUI来说,他已经存在于某个布局中,所以这是没有问题的。但是菜单是弹出式的,不属于任何布局。所以对于Menu实现方式有两种:

方式一:弹出一个窗口,然后在窗口里面来加载MenuUIXml(我的方式),即:CMenuWnd方式

方式二:初始化一个CMenuUI,然后把CMenuUI加入到某个布局中,然后内部初始化MenuWnd。和ComboUI实现方式一样。即:CMenuUI


方式一:

优点:使用方便,可以直接New就行了,和当所属前窗口布局没有关系。

缺点:总是需要一个xml作为 菜单的模板。


方式二:

优点:不必须需要xml模板,可以动态增加菜单,对于Menu的动态修改方便

缺点:每次必须寻找一个布局,把MenuUI加入布局,使用起来有点麻烦。


方式一的实现: 源码下载:http://download.csdn.net/detail/cair2/8726659

下载源文件后:把UIMenu.h,UIMenu.cpp 放在Duilib的Control下面 ,observer_impl_base.hpp放在Utils下面


MenuXml的格式:

技术分享


Menu的使用:

技术分享


效果图:

技术分享


Duilib 弹出菜单

标签:dui menu

原文地址:http://blog.csdn.net/cair2/article/details/45912709

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!