为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 易语言例程 正文

易语言API实现菜单类

三叶资源网 2020-04-29 11:43:09 易语言例程 1622 ℃ 0 评论
.版本 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)

@琪诺兔

文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
安全CALL鼠标源码屏幕取色文件拖拽图片相似度对比javascript面试题强行兼容高DPIQQ取本机cookieEXDUI4.1例程BAT批处理扫码登录动画帧纯组件美化界面UI斗鱼弹幕助手注册美团360UIQQ源码软件源码VMware扫码枪数据获取
最新评论