分类
易语言例程

易语言API实现菜单类

.版本 2 .支持库 spec .程序集 窗口程序集_窗口1, , , 演示窗口的程序集 .程序集变量 窗口句柄, 整数型, , , 用于存储窗口句柄 .程序集变量 菜单, Qn菜单, , , 本模块的Qn菜单 .程序集变量 托盘, 类_托盘, , , 精易模块的 类_托盘 .程序集变量 主菜单句柄, 整数型, , , 创建的主菜单句柄 .程序集变量 主菜单的子菜单句柄, 整数型, , , 用主菜单句柄创建的子菜单句柄 .程序集变量 二菜单句柄, 整数型, , , 创建的二菜单句柄 .程序集变量 二菜单的子菜单句柄, 整数型, , , 用二菜单句柄创建的二菜单子菜单句柄 .程序集变量 二菜单的子子菜单句柄, 整数型, , , 用二菜单子菜单句柄创建的二菜单的子子菜单句柄 .程序集变量 三菜单句柄, 整数型, , , 创建的三菜单句柄 .程序集变量 三菜单的子菜单句柄, 整数型, , , 用三菜单句柄创建的三菜单的子菜单句柄 .程序集变量 菜单起始ID, 整数型, , , 创建菜单必须的ID变量建议30000开始 .程序集变量 消息指针, 整数型, , , SetWindowLongA方法的指针 .子程序 _演示窗口_创建完毕 窗口句柄 = 取窗口句柄 () ' 取窗口句柄 消息指针 = SetWindowLongA (窗口句柄, #GWL_WNDPROC, 到整数 (&菜单处理过程)) ' 监控窗口消息 托盘.创建 (窗口句柄, #测试图标, “Qn菜单演示例程”) ' 用精易模块创建托盘图标 托盘.挂接事件 (&托盘事件) ' 挂接精易模块创建托盘图标的事件 菜单起始ID = 30000 ' 将菜单起始ID设置为30000 主菜单句柄 = 菜单.创建弹出 () ' 创建一个弹出菜单并返回一个句柄 菜单.添加_图片 (主菜单句柄, #测试图标, 下一个菜单ID (), 0, &主菜单单击, &主菜单点燃) ' 添加一个用图片当做背景的菜单并添加事件 ' ============ www.sanye.cx =============-- ’本站收录资源,如有密码,默认解压密码都为:www.sanye.cx ’三叶资源网官方④群:72857039 ' 投稿邮箱:[email protected] ' ============ =====================-- ’专注易语言,按键精灵等编程源码分享的网站 ’三叶资源网收集的软件和源码,大部分为软件作者或网友推荐, ’版权归原作者所有,仅供学习和研究使用。 ’转载本站提供的资源请勿删除本说明文件。 ' 本站提供资源只可供研究使用,请在下载24小时内删除,勿用于商业用途,由此引起一切后果与本站无关。 ' ============ www.sanye.cx =============-- ' 本源码来自三叶资源网(www.sanye.cx) 菜单.添加 (主菜单句柄, “Qn菜单演示例程”, 下一个菜单ID (), 0, &主菜单单击, &主菜单点燃) ' 添加一个普通的菜单并添加事件 主菜单的子菜单句柄 = 菜单.添加 (主菜单句柄, “子菜单演示”, , 0, , ) ' 用刚刚创建的弹出菜单句柄返回一个子菜单句柄 菜单.插入A (主菜单的子菜单句柄, 1, “子菜单带图标演示”, 下一个菜单ID (), , #测试图标, &主菜单单击, &主菜单点燃) ' 添加一个带图标和文本的子菜单并添加事件 菜单.添加 (主菜单的子菜单句柄, “子菜单演示”, 下一个菜单ID (), 0, &子菜单单击, &子菜单点燃) ' 添加一个普通的子菜单并添加事件 菜单.添加 (主菜单的子菜单句柄, “子菜单演示”, 下一个菜单ID (), 0, &子菜单单击, &子菜单点燃) ' 添加一个普通的子菜单并添加事件 菜单.插入A (主菜单句柄, 3, “带图标演示”, 下一个菜单ID (), , #测试图标, &主菜单单击, &主菜单点燃) ' 添加一个带图标和文本的菜单并添加事件 菜单.添加 (主菜单句柄, “主菜单演示1”, 下一个菜单ID (), 0, &主菜单单击, &主菜单点燃) ' 添加一个普通的菜单并添加事件 菜单.添加 (主菜单句柄, “主菜单演示2”, 下一个菜单ID (), 0, &主菜单单击, &主菜单点燃) ' 添加一个普通的菜单并添加事件 菜单.添加 (主菜单句柄, “主菜单演示3”, 下一个菜单ID (), 0, &主菜单单击, &主菜单点燃) ' 添加一个普通的菜单并添加事件 菜单.添加 (主菜单句柄, “主菜单演示4”, 下一个菜单ID (), 0, &主菜单单击, &主菜单点燃) ' 添加一个普通的菜单并添加事件 菜单.添加 (主菜单句柄, “主菜单演示5”, 下一个菜单ID (), 0, &主菜单单击, &主菜单点燃) ' 添加一个普通的菜单并添加事件 菜单.添加 (主菜单句柄, “”, 1, 2048, , ) ' 添加一个分隔符的菜单并添加事件 菜单.添加 (主菜单句柄, “主菜单演示6”, 下一个菜单ID (), 0, &主菜单单击, &主菜单点燃) ' 添加一个普通的菜单并添加事件 二菜单句柄 = 菜单.创建弹出 () ' 在创建一个弹出菜单并返回一个句柄 菜单.添加 (二菜单句柄, “带选中的菜单演示”, 下一个菜单ID (), 8, &带选中的菜单子程序, ) ' 创建一个带选中的菜单演示并添加事件 菜单.添加 (二菜单句柄, “二菜单演示”, 下一个菜单ID (), 0, , ) ' 添加一个普通的菜单并添加事件 菜单.添加 (二菜单句柄, “二菜单演示”, 下一个菜单ID (), 0, , ) ' 添加一个普通的菜单并添加事件 菜单.添加 (二菜单句柄, “”, 1, 2048, , ) ' 添加一个分隔符的菜单并添加事件 菜单.添加 (二菜单句柄, “二菜单演示”, 下一个菜单ID (), 0, , ) 菜单.添加 (二菜单句柄, “二菜单演示”, 下一个菜单ID (), 0, , ) 菜单.添加 (二菜单句柄, “二菜单演示”, 下一个菜单ID (), 0, , ) 二菜单的子菜单句柄 = 菜单.添加 (二菜单句柄, “二菜单演示”, , 0, , ) 菜单.添加 (二菜单的子菜单句柄, “子菜单演示”, 下一个菜单ID (), 0, , ) 菜单.添加 (二菜单的子菜单句柄, “子菜单演示”, 下一个菜单ID (), 0, , ) 菜单.添加 (二菜单的子子菜单句柄, “”, 1, 2048, , ) 二菜单的子子菜单句柄 = 菜单.添加 (二菜单的子菜单句柄, “子菜单演示”, , 0, , ) 菜单.添加 (二菜单的子子菜单句柄, “子子菜单演示”, 下一个菜单ID (), 0, , ) 菜单.添加 (二菜单的子子菜单句柄, “子子菜单演示”, 下一个菜单ID (), 0, , ) 菜单.添加 (二菜单的子子菜单句柄, “子子菜单演示”, 下一个菜单ID (), 0, , ) 菜单.添加 (二菜单的子子菜单句柄, “子子菜单演示”, 下一个菜单ID (), 0, , ) 多重加入 ({ “三菜单演示”, “三菜单演示1”, “三菜单演示2”, “三菜单演示3”, “三菜单演示4”, “三菜单演示5”, “三菜单演示6” }) ' 用循环方式添加菜单并变成子程序 调试输出 (菜单.是否菜单 (主菜单句柄)) .子程序 多重加入, , , 多重加入菜单 .参数 菜单名组, 文本型, 数组 .局部变量 i, 整数型 三菜单句柄 = 菜单.创建弹出 () .计次循环首 (取数组成员数 (菜单名组), i) 菜单.插入A (三菜单句柄, i, 菜单名组 [i], 下一个菜单ID (), 0, , &多重加入子程序, ) .计次循环尾 () .子程序 带选中的菜单子程序, , , 带选中的菜单子程序事件 .参数 菜单ID, 整数型 .参数 窗口句柄, 整数型 .局部变量 形态, 整数型 形态 = 菜单.取状态 (二菜单句柄, 菜单ID, 真) .如果真 (形态 = 0) 菜单.选中 (二菜单句柄, 菜单ID, 真, 真) 调试输出 (“真”) .如果真结束 .如果真 (形态 = 8) 菜单.选中 (二菜单句柄, 菜单ID, 假, 真) 调试输出 (“假”) .如果真结束 .子程序 多重加入子程序, , , 多重加入菜单的子程序 .参数 菜单ID, 整数型 .参数 窗口句柄, 整数型 .局部变量 索引, 整数型 .判断开始 (窗口句柄 = 0) 索引 = 菜单.取索引 (三菜单句柄, 菜单ID) + 1 .默认 .如果 (窗口句柄 < 8 且 窗口句柄 > 0) 索引 = 窗口句柄 .否则 索引 = 菜单.取索引 (三菜单句柄, 菜单ID) + 1 .如果结束 .判断结束 信息框子程序 (“主句柄” + 到文本 (三菜单句柄) + #换行符 + “句柄为 ” + 到文本 (窗口句柄) + #换行符 + “ID为 ” + 到文本 (菜单ID) + #换行符 + “索引为 ” + 到文本 (索引) + #换行符 + “标题为 ” + 菜单.取标题 (三菜单句柄, 菜单ID) + #换行符 + “形态 被点击”) .子程序 信息框子程序 .参数 参数, 文本型 信息框 (参数, #信息图标, “Qn菜单演示例程”, ) .子程序 _主菜单_被单击, , , 主菜单按钮被点击 菜单.弹出 (主菜单句柄, , , , 窗口句柄) .子程序 _菜单二_被单击, , , 菜单二按钮被点击 菜单.弹出 (二菜单句柄, , , , 窗口句柄) .子程序 _菜单三_被单击, , , 菜单三按钮被点击 菜单.弹出 (三菜单句柄, , , , 窗口句柄) .子程序 菜单处理过程, 整数型, , 用于处理菜单过程 .参数 窗口句柄, 整数型, , hWnd .参数 消息, 整数型, , uMsg .参数 参数1, 整数型, , wParam .参数 参数2, 整数型, , lParam .局部变量 低, 整数型 .局部变量 高, 整数型 .判断开始 (消息 = #WM_COMMAND) ' 窗口菜单被选择 低 = 位与 (参数1, 65535) 高 = 参数1 \ 65536 .如果真 (参数2 = 0 且 高 = 0) 菜单.处理菜单事件 (窗口句柄, 低, ) .如果真结束 .默认 .如果真 (消息 = #WM_MENUSELECT) ' 鼠标经过菜单 菜单.处理菜单事件 (窗口句柄, 位与 (参数1, 65535), 真) .如果真结束 .判断结束 返回 (CallWindowProcA (消息指针, 窗口句柄, 消息, 参数1, 参数2)) .子程序 托盘事件 .参数 操作类型, 整数型 .如果真 (操作类型 = #WM_LBUTTONDOWN) 菜单.弹出托盘 (主菜单句柄, , , , 窗口句柄, 真) ' 准备弹出托盘菜单 .如果真结束 .如果真 (操作类型 = #WM_RBUTTONUP) 菜单.弹出托盘 (主菜单句柄, , , , 窗口句柄, ) ' 弹出托盘菜单 .如果真结束 .子程序 子菜单点燃, , , 主菜单的子菜单点燃事件 调试输出 (1) .子程序 子菜单单击, , , 主菜单的子菜单单击事件 调试输出 (2) .子程序 主菜单点燃, , , 主菜单点燃事件 .参数 菜单ID, 整数型 .参数 窗口句柄, 整数型 .局部变量 索引, 整数型 .判断开始 (窗口句柄 = 0) 索引 = 菜单.取索引 (主菜单句柄, 菜单ID) + 1 .默认 .如果 (窗口句柄 < 8 且 窗口句柄 > 0) 索引 = 窗口句柄 .否则 索引 = 菜单.取索引 (主菜单句柄, 菜单ID) + 1 .如果结束 ' ============ www.sanye.cx =============-- ’本站收录资源,如有密码,默认解压密码都为:www.sanye.cx ’三叶资源网官方④群:72857039 ' 投稿邮箱:[email protected] ' ============ =====================-- ’专注易语言,按键精灵等编程源码分享的网站 ’三叶资源网收集的软件和源码,大部分为软件作者或网友推荐, ’版权归原作者所有,仅供学习和研究使用。 ’转载本站提供的资源请勿删除本说明文件。 ' 本站提供资源只可供研究使用,请在下载24小时内删除,勿用于商业用途,由此引起一切后果与本站无关。 ' ============ www.sanye.cx =============-- ' 本源码来自三叶资源网(www.sanye.cx) .判断结束 调试输出 (“句柄为” + 到文本 (窗口句柄) + “ ID为” + 到文本 (菜单ID) + “ 索引为” + 到文本 (索引) + “ 点击”) .子程序 主菜单单击, , , 主菜单单击事件 .参数 菜单ID, 整数型 .参数 窗口句柄, 整数型 .局部变量 索引, 整数型 .判断开始 (窗口句柄 = 0) 索引 = 菜单.取索引 (主菜单句柄, 菜单ID) + 1 .默认 .如果 (窗口句柄 < 8 且 窗口句柄 > 0) 索引 = 窗口句柄 .否则 索引 = 菜单.取索引 (主菜单句柄, 菜单ID) + 1 .如果结束 .判断结束 .如果真 (索引 = 1) 调试输出 (“一”) .如果真结束 .如果真 (索引 = 2) 调试输出 (“二”) .如果真结束 .如果真 (索引 = 3) 调试输出 (“三”) .如果真结束 .如果真 (索引 = 4) 调试输出 (“四”) .如果真结束 .子程序 下一个菜单ID, 整数型, , 生存下一个菜单ID 菜单起始ID = 菜单起始ID + 1 返回 (菜单起始ID)
相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注