|
分享例程
界面截图: |
|
备注说明: |
【更新2.6】中文强大的API菜单类 全面 动态 完善 易懂 易用 高扩展 |
【中文强大的API菜单类模块】
全面 动态 完善 易懂 易用 高扩展 【对不起刚刚发错压缩包了这次是模块了】 【注 全局变量的菜单句柄可以在程序的任何部位弹出】 【更新2.6】
修复了一个大BUG
提高了效率
完善了命令方法
类型标记作为了常量
【以下是使用例程】 请先创建四个按钮[主菜单][二菜单][三菜单][四菜单]在窗口里写以下代码 窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_窗口1 | | | 变量名 | 类 型 | 数组 | 备 注 | 窗口句柄 | 整数型 | | 菜单 | Qn菜单 | | 托盘 | 类_托盘 | | 主菜单句柄 | 整数型 | | 主菜单的子菜单句柄 | 整数型 | | 二菜单句柄 | 整数型 | | 二菜单的子菜单句柄 | 整数型 | | 二菜单的子子菜单句柄 | 整数型 | | 三菜单句柄 | 整数型 | | 三菜单的子菜单句柄 | 整数型 | | 四菜单句柄 | 整数型 | | 菜单起始ID | 整数型 | | 消息指针 | 整数型 | |
窗口句柄 = 取窗口句柄 () 消息指针 = SetWindowLongA (窗口句柄, #GWL_WNDPROC, 到整数 (&菜单处理过程 )) 托盘. 创建 (窗口句柄, #测试图标, “Qn菜单演示例程”) 托盘. 挂接事件 (&托盘事件 ) 菜单起始ID = 30000 主菜单句柄 = 菜单. 创建弹出 () 菜单. 添加_图片 (主菜单句柄, #测试图标, 下一个菜单ID (), #菜单类型_激活, &主菜单单击, &主菜单点燃 ) 菜单. 添加_文本 (主菜单句柄, “Qn菜单演示例程”, 下一个菜单ID (), #菜单类型_激活, &主菜单单击, &主菜单点燃 ) 主菜单的子菜单句柄 = 菜单. 添加 (主菜单句柄, 取文本指针_ (“子菜单演示”), , #菜单类型_激活, , ) 菜单. 插入Ex (主菜单的子菜单句柄, 1, “子菜单带图标演示”, 下一个菜单ID (), #菜单类型_图片句柄, #测试图标, &主菜单单击, &主菜单点燃 ) 菜单. 添加_文本 (主菜单的子菜单句柄, “子菜单演示”, 下一个菜单ID (), #菜单类型_激活, &子菜单单击, &子菜单点燃 ) 菜单. 添加_文本 (主菜单的子菜单句柄, “子菜单演示”, 下一个菜单ID (), #菜单类型_激活, &子菜单单击, &子菜单点燃 ) 菜单. 插入Ex (主菜单句柄, 3, “带图标演示”, 下一个菜单ID (), #菜单类型_图片句柄, #测试图标, &主菜单单击, &主菜单点燃 ) 菜单. 添加_文本 (主菜单句柄, “主菜单演示1”, 下一个菜单ID (), #菜单类型_激活, &主菜单单击, &主菜单点燃 ) 菜单. 添加_文本 (主菜单句柄, “主菜单演示2”, 下一个菜单ID (), #菜单类型_激活, &主菜单单击, &主菜单点燃 ) 菜单. 添加_文本 (主菜单句柄, “主菜单演示3”, 下一个菜单ID (), #菜单类型_激活, &主菜单单击, &主菜单点燃 ) 菜单. 添加_文本 (主菜单句柄, “主菜单演示4”, 下一个菜单ID (), #菜单类型_激活, &主菜单单击, &主菜单点燃 ) 菜单. 添加_文本 (主菜单句柄, “主菜单演示5”, 下一个菜单ID (), #菜单类型_激活, &主菜单单击, &主菜单点燃 ) 菜单. 添加_文本 (主菜单句柄, “”, 1, #菜单类型_分割线, , ) 菜单. 添加_文本 (主菜单句柄, “主菜单演示6”, 下一个菜单ID (), #菜单类型_激活, &主菜单单击, &主菜单点燃 ) 二菜单句柄 = 菜单. 创建弹出 () 菜单. 添加_文本 (二菜单句柄, “带选中的菜单演示”, 下一个菜单ID (), #菜单类型_选中, &带选中的菜单子程序, ) 菜单. 添加_文本 (二菜单句柄, “二菜单演示”, 下一个菜单ID (), #菜单类型_激活, , ) 菜单. 添加_文本 (二菜单句柄, “二菜单演示”, 下一个菜单ID (), #菜单类型_激活, , ) 菜单. 添加_文本 (二菜单句柄, “”, 1, #菜单类型_分割线, , ) 菜单. 添加_文本 (二菜单句柄, “二菜单演示”, 下一个菜单ID (), #菜单类型_激活, , )菜单. 添加_文本 (二菜单句柄, “二菜单演示”, 下一个菜单ID (), #菜单类型_激活, , )菜单. 添加_文本 (二菜单句柄, “二菜单演示”, 下一个菜单ID (), #菜单类型_激活, , )二菜单的子菜单句柄 = 菜单. 添加_文本 (二菜单句柄, “二菜单演示”, , #菜单类型_激活, , )菜单. 添加_文本 (二菜单的子菜单句柄, “子菜单演示”, 下一个菜单ID (), #菜单类型_激活, , )菜单. 添加_文本 (二菜单的子菜单句柄, “子菜单演示”, 下一个菜单ID (), #菜单类型_激活, , )菜单. 添加_文本 (二菜单的子子菜单句柄, “”, 1, #菜单类型_分割线, , )二菜单的子子菜单句柄 = 菜单. 添加_文本 (二菜单的子菜单句柄, “子菜单演示”, , #菜单类型_激活, , )菜单. 添加_文本 (二菜单的子子菜单句柄, “子子菜单演示”, 下一个菜单ID (), #菜单类型_激活, , )菜单. 添加_文本 (二菜单的子子菜单句柄, “子子菜单演示”, 下一个菜单ID (), #菜单类型_激活, , )菜单. 添加_文本 (二菜单的子子菜单句柄, “子子菜单演示”, 下一个菜单ID (), #菜单类型_激活, , )菜单. 添加_文本 (二菜单的子子菜单句柄, “子子菜单演示”, 下一个菜单ID (), #菜单类型_激活, , )四菜单句柄 = 菜单. 创建弹出 () 菜单. 添加_图片 (四菜单句柄, #测试图标, 下一个菜单ID (), #菜单类型_激活, , )菜单. 添加_文本 (四菜单句柄, “子子菜单演示”, 下一个菜单ID (), #菜单类型_激活, &四菜单点击, &四菜单点燃 )菜单. 添加_文本 (四菜单句柄, “”, 下一个菜单ID (), #菜单类型_换行, , )菜单. 添加_文本 (四菜单句柄, “子子菜单演示2”, 下一个菜单ID (), #菜单类型_ **, &四菜单点击, &四菜单点燃 )菜单. 添加_文本 (四菜单句柄, “子子菜单演示3”, 下一个菜单ID (), #菜单类型_禁止, &四菜单点击, &四菜单点燃 )菜单. 添加_文本 (四菜单句柄, “子子菜单演示4”, 下一个菜单ID (), #菜单类型_加亮, &四菜单点击, &四菜单点燃 )菜单. 添加_文本 (四菜单句柄, “子子菜单演示5”, 下一个菜单ID (), #菜单类型_垂直线, &四菜单点击, &四菜单点燃 )菜单. 添加_文本 (四菜单句柄, “子子菜单演示6”, 下一个菜单ID (), #菜单类型_分割列, &四菜单点击, &四菜单点燃 )菜单. 添加_文本 (四菜单句柄, “”, 下一个菜单ID (), #菜单类型_分割线, , )多重加入 ({ “三菜单演示”, “三菜单演示1”, “三菜单演示2”, “三菜单演示3”, “三菜单演示4”, “三菜单演示5”, “三菜单演示6” }) 调试输出 (菜单. 是否菜单 (主菜单句柄 )) 三菜单句柄 = 菜单. 创建弹出 ()计次循环首 (取数组成员数 (菜单名组 ), i )菜单. 插入Ex (三菜单句柄, i, 菜单名组 [i ], 下一个菜单ID (), 0, , &多重加入子程序, )计次循环尾 ()形态 = 菜单. 取状态 (二菜单句柄, 菜单ID, 真)如果真 (形态 = 0 )菜单. 选中 (二菜单句柄, 菜单ID, 真, 真)调试输出 (“真”)如果真 (形态 = 8 )菜单. 选中 (二菜单句柄, 菜单ID, 假, 真)调试输出 (“假”)判断 (窗口句柄 = 0 )索引 = 菜单. 取索引 (三菜单句柄, 菜单ID ) + 1 如果 (窗口句柄 < 8 且 窗口句柄 > 0 )索引 = 窗口句柄 索引 = 菜单. 取索引 (三菜单句柄, 菜单ID ) + 1 信息框子程序 (“主句柄” + 到文本 (三菜单句柄 ) + #换行符 + “句柄为 ” + 到文本 (窗口句柄 ) + #换行符 + “ID为 ” + 到文本 (菜单ID ) + #换行符 + “索引为 ” + 到文本 (索引 ) + #换行符 + “标题为 ” + 菜单. 取标题 (三菜单句柄, 菜单ID ) + #换行符 + “形态 被点击”)信息框 (参数, #信息图标, “Qn菜单演示例程”, )菜单. 弹出 (主菜单句柄, , , , 窗口句柄 )菜单. 弹出 (二菜单句柄, , , , 窗口句柄 )菜单. 弹出 (三菜单句柄, , , , 窗口句柄 )菜单. 弹出 (四菜单句柄, , , , 窗口句柄 )|
菜单处理过程 | 整数型 | | |
窗口句柄 | 整数型 | | | | 消息 | 整数型 | | | | 参数1 | 整数型 | | | | 参数2 | 整数型 | | | | 判断 (消息 = #WM_COMMAND ) 低 = 位与 (参数1, 65535 )高 = 参数1 \ 65536 如果真 (参数2 = 0 且 高 = 0 )菜单. 处理菜单事件 (窗口句柄, 低, )如果真 (消息 = #WM_MENUSELECT ) 菜单. 处理菜单事件 (窗口句柄, 位与 (参数1, 65535 ), 真)返回 (CallWindowProcA (消息指针, 窗口句柄, 消息, 参数1, 参数2 )) 如果真 (操作类型 = #WM_LBUTTONDOWN )菜单. 弹出托盘 (主菜单句柄, , , , 窗口句柄, 真) 如果真 (操作类型 = #WM_RBUTTONUP )菜单. 弹出托盘 (主菜单句柄, , , , 窗口句柄, ) 调试输出 (1 )调试输出 (2 )判断 (窗口句柄 = 0 )索引 = 菜单. 取索引 (主菜单句柄, 菜单ID ) + 1 如果 (窗口句柄 < 8 且 窗口句柄 > 0 )索引 = 窗口句柄 索引 = 菜单. 取索引 (主菜单句柄, 菜单ID ) + 1 调试输出 (“句柄为” + 到文本 (窗口句柄) + “ ID为” + 到文本 (菜单ID) + “ 索引为” + 到文本 (索引) + “ 点燃”)判断 (窗口句柄 = 0 )索引 = 菜单. 取索引 (主菜单句柄, 菜单ID ) + 1 如果 (窗口句柄 < 8 且 窗口句柄 > 0 )索引 = 窗口句柄 索引 = 菜单. 取索引 (主菜单句柄, 菜单ID ) + 1 如果真 (索引 = 1 )调试输出 (“一”)如果真 (索引 = 2 )调试输出 (“二”)如果真 (索引 = 3 )调试输出 (“三”)如果真 (索引 = 4 )调试输出 (“四”)调试输出 (“四菜单点燃”)调试输出 (“四菜单点击”)菜单起始ID = 菜单起始ID + 1 返回 (菜单起始ID ) |
评分
-
查看全部评分
|