• DuiVision开发教程(19)-菜单


    DuiVision菜单类是CDuiMenu。有两种显示的位置,一种是在窗体顶部某个button点击后能够下拉一个菜单,还有一种是托盘图标的右键菜单。
    窗体中的菜单定义方式是xml文件里设置某个button的action属性,以menu:开头。后面是菜单的XML文件名称或XML定义名,比如以下这样定义:

    <imgbtn name="button.menu" pos="-110,0,-77,29" skin="IDB_BT_MENU" tip="菜单" action="menu:mainmenu.xml"/>

    托盘菜单默认是依照resource.xml中定义的menu_tray指向的XML文件来载入菜单。
    两种方式载入的菜单定义XML文件格式都是同样的,參考前面XML说明章节的演示样例。
    菜单类的属性例如以下:

    属性名 类型 说明
    width 数字 菜单窗体宽度
    item-height 数字 每一个菜单项的高度
    left 数字 菜单左側图标区的宽度
    sep-height 数字 菜单分隔线的高度
    font 字符串 字体
    fontwidth 数字 字体宽度
    frame-width 数字 菜单项距离边框的宽度
    top-height 数字 菜单项顶部距离边框的高度
    bottom-height 数字 菜单项底部距离边框的高度
    crrowhover 颜色 菜单项背景颜色(鼠标移动到菜单项时候的颜色),假设不设置则使用默认颜色
    img-rowhover 图片 菜单项背景图片(鼠标移动到菜单项时候的背景图片),优先级比背景颜色高
    img-popuparrow 图片 弹出菜单箭头图片

    经常使用函数例如以下:

    函数 是否虚函数 说明
    LoadXmlFile 载入菜单XML文件
    AddMenu 动态加入菜单项
    AddSeparator 动态加入菜单分隔线
    SetItemTitle 预设值菜单项的标题
    SetItemVisible 预设值菜单项的可见性
    SetItemDisable 预设值菜单项的禁用状态
    SetItemCheck 预设值菜单项的检查标志
    SetMenuPoint 刷新全部菜单项的位置信息
    GetParentMenu 获取父菜单对象
    GetHoverMenuItem 获取当前激活菜单项对象

    菜单中载入的每一个菜单项的控件是CMenuItem类。控件类型名是menuitem,菜单项的属性例如以下:

    属性名 类型 说明
    seperator 0|1 是否分隔线
    select 0|1 是否选择(假设是checkbox或radiobutton类型的菜单项,此属性必须设置为1)
    check 0|1 是否处于选中状态
    group 字符串 广播button所属的组名,同样组名的广播button是属于一组的。能够联动。一组中仅仅有一个会处于选中状态
    value 字符串 广播button的值,一组广播button中的多个button值是不一样的。当获取这一组广播button的值时候,获取的就是选中的button的值
    menu 字符串 引用其它的菜单的名字(通过资源定义能够找到的菜单的名字),设置了这个属性,则会将相应的菜单嵌入当前菜单中
    image 图片 菜单项左側的小图片,假设是弹出菜单,而且没有设置菜单的img-popuparrow属性。则image属性表示菜单项右側的箭头图片
    img-count 数字 设置菜单项左側图片是由几个并列的小图片组成的
    taskmsg 0|1 是否通过任务方式运行菜单处理函数,假设弹出菜单的处理函数中有堵塞或等待的操作(比如打开一个对话框),则运行过程中弹出菜单可能会由于失去焦点而将自身的对象删除,这样的情况下就须要通过任务方式运行菜单处理函数,任务方式是将操作插入任务队列。由任务队列线程再去运行菜单处理函数

    菜单项类的经常使用函数例如以下:

    函数 是否虚函数 说明
    SetCheck 设置是否选择
    GetCheck 获取是否选择的状态
    IsSeparator 推断是否分隔线
    SetGroupName 设置广播button组的名字
    GetGroupName 获取广播button组的名字
    GetValue 获取广播button的值
    GetGroupValue 获取广播button组的值
    ResetGroupCheck 刷新父控件以下全部同一个组的RadioButton控件的状态

    菜单界面示比例如以下:
    19-119-219-3


    DuiVision开源码下载地址(github):https://github.com/blueantst/DuiVision
    蓝蚂蚁工作室主页:http://www.blueantstudio.net
    DuiVision QQ群:325880743
    微信公众号:blueantstudio 或搜索 蓝蚂蚁工作室

  • 相关阅读:
    工学A B 刊物
    学习OpenCV
    MFC1
    csmath
    走进心理学
    第八篇: UpdateProgress 控件显示正在处理中的信息
    第十篇: Timer 控件
    第六篇: UpdatePanel 控件UpdateMode属性
    第九篇: UpdateProgress 控件用户中断
    第五篇: UpdatePanel 控件RegisterAsyncPostBackControl方法
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/7026365.html
Copyright © 2020-2023  润新知