YStudio Y++

右键菜单类

Y++ / YStudio 开发文档 · 一点滴

类对象支持库(不是扁平命令)。路径:支持库 → 扩展类库 → 右键菜单类。

类型名必须写完整「右键菜单类」。声明时自动创建,一般无需再调 创建*。

硬约束

  1. 类型名必须写「右键菜单类」。
  2. D2D 自绘;绑定组件/主窗口后右键弹出;点击后自动关闭。
  3. 多个菜单请声明多个变量分别绑定。

快速开始

右键菜单类 m
m.添加项("复制")
m.添加项("粘贴")
m.绑定(编辑框1)

右键菜单类/创建

共 1 条。

创建右键菜单

  • 签名:通用 创建右键菜单()
  • 说明:显式创建一个右键菜单(一般直接写「右键菜单类 m」即可,声明时自动创建)。

右键菜单类/方法

共 27 条。

绑定

  • 签名:无 绑定(组件名 目标名, ...)
  • 说明:绑定到组件名或「主窗口」。直接写设计器中的组件名,无需引号;多目标写 绑定(按钮1, 列表框1);在绑定目标上单击右键弹出菜单。
  • 参数一│组件名 目标名: 如 编辑框1 或 主窗口。
  • 参数二│…: 更多目标(可选)。

添加项

  • 签名:整数 添加项(文本 名称, [字节集 图标], [文本 快捷键], [逻辑 禁用], [逻辑 显示])
  • 说明:在根菜单末尾添加一项,返回【菜单项】整数 ID(供 添加子菜单 / 点击事件;从 1 起)。 注意:这不是菜单对象本身的 ID。多个右键菜单请声明多个「右键菜单类」变量分别绑定。 图标:资源或文件字节集,如 到字节集(“:/img/menu1.png”); 快捷键:如 “Ctrl+S”(与菜单栏/工具栏相同格式,全局按键可触发该项点击回调); 禁用/显示:真/假,默认 假/真。返回 0 表示失败(菜单未创建成功)。
  • 参数一│文本 名称: 菜单项文字。
  • 参数二│[字节集 图标]: 可选,16~24px 图标。
  • 参数三│[文本 快捷键]: 可选,显示在右侧。
  • 参数四│[逻辑 禁用=false]: 真=灰显不可点。
  • 参数五│[逻辑 显示=true]: 假=隐藏。

添加分割线

  • 签名:整数 添加分割线()
  • 说明:在根菜单末尾添加一条分隔线,返回句柄。

插入项

  • 签名:整数 插入项(整数 位置, 文本 名称, [字节集 图标], [文本 快捷键], [逻辑 禁用], [逻辑 显示], [整数 父ID=0])
  • 说明:在指定位置插入菜单项(0 起,同级序号),返回句柄。 位置超出同级项数时追加到末尾;父ID=0 表示根级。
  • 参数一│整数 位置: 同级插入位置(0 起)。
  • 参数二│文本 名称: 菜单项文字。
  • 参数三│[字节集 图标]: 可选图标。
  • 参数四│[文本 快捷键]: 可选快捷键。
  • 参数五│[逻辑 禁用=false]: 真=灰显。
  • 参数六│[逻辑 显示=true]: 假=隐藏。
  • 参数七│[整数 父ID=0]: 父项句柄,0=根级。

插入分割线

  • 签名:整数 插入分割线(整数 位置, [整数 父ID=0])
  • 说明:在指定位置插入分隔线(0 起,同级序号),返回句柄。
  • 参数一│整数 位置: 同级插入位置(0 起)。
  • 参数二│[整数 父ID=0]: 父项句柄,0=根级。

添加子菜单

  • 签名:整数 添加子菜单(整数 父ID, 文本 名称, [字节集 图标], [文本 快捷键], [逻辑 禁用], [逻辑 显示])
  • 说明:在指定父菜单项下添加子项,返回新【菜单项】ID。 正确顺序:先 添加项(“文件”) 得到父ID,再 添加子菜单(父ID, “打开”)。 图标:资源或文件字节集;快捷键:如 “Ctrl+S”;禁用/显示默认 假/真。
  • 参数一│整数 父ID: 父项句柄(添加项 返回值,须 > 0)。
  • 参数二│文本 名称: 子菜单文字。
  • 参数三│[字节集 图标]: 可选,16~24px 图标。
  • 参数四│[文本 快捷键]: 可选,显示在右侧。
  • 参数五│[逻辑 禁用=false]: 真=灰显不可点。
  • 参数六│[逻辑 显示=true]: 假=隐藏。

清空

  • 签名:无 清空()
  • 说明:清空所有菜单项与点击回调。

解绑

  • 签名:无 解绑()
  • 说明:清除全部绑定目标;之后右键不再自动弹出。

显示

  • 签名:无 显示([整数 x], [整数 y])
  • 说明:在窗口内自绘弹出菜单。不传坐标时在当前鼠标位置;传入 x、y 时在指定客户区坐标弹出。托盘/任务栏场景请用「系统显示」。
  • 参数一│[整数 x]: 客户区 X。
  • 参数二│[整数 y]: 客户区 Y。

系统显示

  • 签名:无 系统显示()
  • 说明:用 Windows 原生弹出菜单在屏幕光标处显示(可浮在任务栏/托盘旁)。仅支持扁平项与分割线,不含子菜单与自定义配色。

隐藏

  • 签名:无 隐藏()
  • 说明:立即关闭菜单。

置禁用

  • 签名:无 置禁用(整数 菜单ID, 逻辑 禁用)
  • 说明:设置指定菜单项是否灰显不可点。
  • 参数一│整数 菜单ID: 添加项/添加子菜单 返回的句柄。
  • 参数二│逻辑 禁用: 真=禁用,假=可用。

置显示

  • 签名:无 置显示(整数 菜单ID, 逻辑 显示)
  • 说明:设置指定菜单项是否可见(假=隐藏该项)。
  • 参数一│整数 菜单ID: 添加项/添加子菜单 返回的句柄。
  • 参数二│逻辑 显示: 真=显示,假=隐藏。

删除项

  • 签名:无 删除项(整数 菜单ID)
  • 说明:删除指定菜单项及其全部子项,并清除对应点击回调。
  • 参数一│整数 菜单ID: 要删除的句柄。

项高

  • 签名:无 项高([整数 像素=28])
  • 说明:设置菜单项行高(像素),最小 16,默认 28。
  • 参数一│[整数 像素=28]: 行高。

字号

  • 签名:无 字号([整数 像素=12])
  • 说明:设置菜单文字字号(像素),最小 6,默认 12。
  • 参数一│[整数 像素=12]: 字号。

文字色

  • 签名:无 文字色([文本 颜色="#FFFFFF"])
  • 说明:设置菜单文字颜色(#RGB / #ARGB)。
  • 参数一│[文本 颜色=”#FFFFFF”]: 如 “#FFFFFF”。

背景色

  • 签名:无 背景色([文本 颜色="#2B2B2B"])
  • 说明:设置菜单背景色(#RGB / #ARGB)。
  • 参数一│[文本 颜色=”#2B2B2B”]: 如 “#2B2B2B”。

悬停文字色

  • 签名:无 悬停文字色([文本 颜色="#FFFFFF"])
  • 说明:设置鼠标悬停时的菜单项文字颜色。
  • 参数一│[文本 颜色=”#FFFFFF”]: 如 “#FFFFFF”。

悬停背景色

  • 签名:无 悬停背景色([文本 颜色="#3A3A3A"])
  • 说明:设置鼠标悬停时的菜单项背景色。
  • 参数一│[文本 颜色=”#3A3A3A”]: 如 “#3A3A3A”。

取项数

  • 签名:整数 取项数([整数 父ID=0])
  • 说明:取同级项数(含分割线)。父ID=0 为根级;传 -1 返回菜单全部项数。
  • 参数一│[整数 父ID=0]: 父项句柄;0=根级,-1=全部。

取项ID

  • 签名:整数 取项ID(整数 位置, [整数 父ID=0])
  • 说明:按同级位置(0 起)取菜单句柄;无效位置返回 0。
  • 参数一│整数 位置: 同级序号(0 起)。
  • 参数二│[整数 父ID=0]: 父项句柄,0=根级。

取名称

  • 签名:文本 取名称(整数 菜单ID)
  • 说明:取指定菜单项的显示名称。
  • 参数一│整数 菜单ID: 添加/插入项返回的句柄。

取快捷键

  • 签名:文本 取快捷键(整数 菜单ID)
  • 说明:取指定菜单项的快捷键文本。
  • 参数一│整数 菜单ID: 菜单句柄。

取禁用

  • 签名:逻辑 取禁用(整数 菜单ID)
  • 说明:取指定菜单项是否禁用。
  • 参数一│整数 菜单ID: 菜单句柄。

取显示

  • 签名:逻辑 取显示(整数 菜单ID)
  • 说明:取指定菜单项是否显示。
  • 参数一│整数 菜单ID: 菜单句柄。

点击事件

  • 签名:无 点击事件(整数 菜单ID, [子程序指针 回调])
  • 说明:为指定句柄的菜单项注册点击回调;回调为无参子程序,如 函数 打开被点击() { … }
  • 参数一│整数 菜单ID: 添加项/添加子菜单 返回的句柄。
  • 参数二│[子程序指针 回调]: 如 &打开被点击;传 0 清除。

易错对照

错误 正确
类型写成「右键菜单」 必须「右键菜单类」

相关

托盘类 · 回调