开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 16874|回复: 23
收起左侧

[易语言成品模块] 【更新2.6】中文强大的API菜单类 全面 动态 完善 易懂 易用 高扩展

[复制链接]
发表于 2020-6-6 11:01:07 | 显示全部楼层 |阅读模式   辽宁省鞍山市
分享例程
界面截图:
备注说明: 【更新2.6】中文强大的API菜单类 全面 动态 完善 易懂 易用 高扩展
中文强大的API菜单类模块

全面 动态 完善 易懂 易用 高扩展
(托盘菜单需要精易模块的 类_托盘 使用)
【对不起刚刚发错压缩包了这次是模块了】
【注 全局变量的菜单句柄可以在程序的任何部位弹出】
【更新2.6】
修复了一个大BUG
提高了效率
完善了命令方法
类型标记作为了常量
【以下是使用例程】
图.png
请先创建四个按钮[主菜单][二菜单][三菜单][菜单]在窗口里写以下代码
  
窗口程序集名保 留  保 留备 注
窗口程序集_窗口1  演示窗口的程序集
变量名类 型数组备 注
窗口句柄整数型用于存储窗口句柄
菜单Qn菜单本模块的Qn菜单
托盘类_托盘精易模块的 类_托盘
主菜单句柄整数型创建的主菜单句柄
主菜单的子菜单句柄整数型用主菜单句柄创建的子菜单句柄
二菜单句柄整数型创建的二菜单句柄
二菜单的子菜单句柄整数型用二菜单句柄创建的二菜单子菜单句柄
二菜单的子子菜单句柄整数型用二菜单子菜单句柄创建的二菜单的子子菜单句柄
三菜单句柄整数型创建的三菜单句柄
三菜单的子菜单句柄整数型用三菜单句柄创建的三菜单的子菜单句柄
四菜单句柄整数型创建的四菜单句柄
菜单起始ID整数型创建菜单必须的ID变量建议30000开始
消息指针整数型SetWindowLongA方法的指针

子程序名返回值类型公开备 注
_演示窗口_创建完毕  
窗口句柄 = 取窗口句柄 ()  ' 取窗口句柄
消息指针 = SetWindowLongA (窗口句柄, #GWL_WNDPROC, 到整数 (&菜单处理过程))  ' 监控窗口消息
托盘.创建 (窗口句柄, #测试图标, “Qn菜单演示例程”)  ' 用精易模块创建托盘图标
托盘.挂接事件 (&托盘事件)  ' 挂接精易模块创建托盘图标的事件
菜单起始ID = 30000  ' 将菜单起始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整数型 
三菜单句柄 = 菜单.创建弹出 ()
计次循环首 (取数组成员数 (菜单名组), i)
菜单.插入Ex (三菜单句柄, 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

调试输出 (“句柄为”到文本 (窗口句柄)“ ID为”到文本 (菜单ID)“ 索引为”到文本 (索引)“ 点燃”)
子程序名返回值类型公开备 注
主菜单单击 主菜单单击事件
参数名类 型参考可空数组备 注
菜单ID整数型
窗口句柄整数型
变量名类 型静态数组备 注
索引整数型 
判断 (窗口句柄 = 0)
索引 = 菜单.取索引 (主菜单句柄, 菜单ID) + 1
如果 (窗口句柄 < 8 窗口句柄 > 0)
索引 = 窗口句柄
索引 = 菜单.取索引 (主菜单句柄, 菜单ID) + 1

如果真 (索引 = 1)
调试输出 (“一”)

如果真 (索引 = 2)
调试输出 (“二”)

如果真 (索引 = 3)
调试输出 (“三”)

如果真 (索引 = 4)
调试输出 (“四”)

子程序名返回值类型公开备 注
四菜单点燃  
调试输出 (“四菜单点燃”)
子程序名返回值类型公开备 注
四菜单点击  
调试输出 (“四菜单点击”)
子程序名返回值类型公开备 注
下一个菜单ID整数型 生存下一个菜单ID
菜单起始ID = 菜单起始ID + 1
返回 (菜单起始ID)


i支持库列表   支持库注释   
spec特殊功能支持库
【模块下载 Qn菜单2.6.zip (792.6 KB, 下载次数: 289)

评分

参与人数 4好评 +1 精币 +7 收起 理由
冰棍好烫啊 -1 -1 说说看有哪些内部子程序公开了却完全没用
v1331v + 1 支持开源~!感谢分享
就是那个秋 + 1 + 2 精彩文章希望继续努力
易语言资源网 + 1 + 5 精彩文章希望继续努力

查看全部评分


友情提醒:请选择可信度高的模块,勿用未知模块,防止小人在模块内加入木马程序。【发现问题模块请到站务投诉】。

本帖被以下淘专辑推荐:

  • · 收藏|主题: 45, 订阅: 1
结帖率:0% (0/2)

签到天数: 17 天

发表于 2024-9-21 16:10:43 | 显示全部楼层   广东省深圳市
中文强大的API菜单类模块
回复 支持 反对

使用道具 举报

结帖率:90% (27/30)

签到天数: 17 天

发表于 2024-6-29 18:12:09 | 显示全部楼层   山东省济宁市
多谢分享
回复 支持 反对

使用道具 举报

结帖率:80% (4/5)

签到天数: 2 天

发表于 2023-9-23 20:51:59 | 显示全部楼层   山东省潍坊市
已经顶贴,感谢您对论坛的支持!
回复 支持 反对

使用道具 举报

发表于 2022-1-7 18:51:59 | 显示全部楼层   湖北省鄂州市
我企鹅亲亲亲亲亲亲温泉恶趣味王企鹅王企鹅哇
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 2022-1-7 16:05:57 | 显示全部楼层   广东省深圳市
好屌哦  膜拜大神
回复 支持 反对

使用道具 举报

结帖率:94% (34/36)

签到天数: 17 天

发表于 2021-12-20 13:22:36 | 显示全部楼层   广东省深圳市
图标支持png吗,bmp的话还有一个背景底色在
回复 支持 反对

使用道具 举报

结帖率:50% (1/2)
发表于 2021-11-4 03:14:04 | 显示全部楼层   美国
66666666666666666
回复 支持 反对

使用道具 举报

结帖率:80% (4/5)

签到天数: 21 天

发表于 2021-10-27 16:39:49 | 显示全部楼层   湖南省郴州市
6666666666666666666
回复 支持 反对

使用道具 举报

结帖率:88% (7/8)
发表于 2021-9-1 13:12:58 | 显示全部楼层   宁夏回族自治区吴忠市
学习一下,看看。
回复 支持 反对

使用道具 举报

结帖率:88% (7/8)
发表于 2021-9-1 13:01:44 | 显示全部楼层   宁夏回族自治区吴忠市
好好学习一下。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表