精易论坛

标题: 【新】用Ex写一个更漂亮的菜单(淡蓝清爽) [打印本页]

作者: 1185384801    时间: 2018-4-5 11:24
标题: 【新】用Ex写一个更漂亮的菜单(淡蓝清爽)
自绘的菜单大家不陌生吧?但是自绘的菜单一般都是英文(看不懂……),So,我干脆用Ex模块写了个自绘的菜单,虽然使用了部分英文,但是加入了大量的注释(精确到行)
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
指针整数型  
菜单对钩整数型  
菜单格式Gdip_文本格式  
Ex_DirectUIEx_DirectUI  

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
Ex_DirectUI.挂接皮肤 (取窗口句柄 (), , RGB2ARGB ( #白色 ), , , , , , , , , , , )  ' 先挂接皮肤,既然用了Ex模块不挂接要出问题
Ex_DirectUI.事件_挂接消息 (&消息处理)  ' 消息回调事件
子程序名返回值类型公开备 注
消息处理整数型 
参数名类 型参考可空数组备 注
hWnd整数型
Msg整数型
wParam整数型
lParam整数型
判断 (Msg = 279)  ' 当菜单要弹出时收到此消息
初始菜单 (wParam, )  ' wparam 菜单句柄
判断 (Msg = 44)  ' 修改菜单大小
如果真 (wParam = 0)  ' 菜单
修改菜单大小 (lParam)
返回 (1)

判断 (Msg = 43)  ' 自绘菜单
如果真 (wParam = 0)  ' 菜单
自绘菜单 (lParam)
返回 (1)



返回 (-1)

首先创建完毕,先Set一下窗口信息回调
  
子程序名返回值类型公开备 注
初始菜单  
参数名类 型参考可空数组备 注
参_子菜单 
参_本菜单逻辑型
变量名类 型静态数组备 注
i  
aMENUITEMINFO 
计次循环首 (GetMenuItemCount (参_子菜单), i)
a.结构大小 = 44
a.标识符 = 位或 (1, 2, 64)  ' 1=状态 2=id 64=标题
' a.条目内容 = 取空白文本 (255)
' a.条目长度 = 255
GetMenuItemInfo (参_子菜单, i - 1, 真, a)  ' 获得菜单MENUITEMINFO结构体
如果真 (a.条目状态 = 3 a.条目ID > 0 参_本菜单 = )
a.条目状态 = 1
ModifyMenu (参_子菜单, i - 1, 位或 (1024, 256), a.条目ID, a.条目状态)  ' 改变菜单条目
计次循环尾 ()

开始初始化菜单
  
子程序名返回值类型公开备 注
修改菜单大小  
参数名类 型参考可空数组备 注
lparam 
变量名类 型静态数组备 注
missMEASUREITEMSTRUCT 
CopyMemory_mis (miss, lparam, 24)  ' 复制内存块,数据类型MEASUREITEMSTRUCT
写到内存 (190, lparam + 12, )  ' 159+20=实际宽度
写到内存 (选择 (miss.itemData = 3, 7, 25), lparam + 16, )  ' 高度22


修改菜单大小
注意注意!!自绘的核心来了!!
  
子程序名返回值类型公开备 注
自绘菜单  
参数名类 型参考可空数组备 注
lParam 
变量名类 型静态数组备 注
disDRAWITEMSTRUCT 
mGraphics  
colour  
菜单文本文本型 
CopyMemory_dis (dis, lParam, 48)  ' 复制DRAWITEMSTRUCT的内存块
GdipCreateFromHDC (dis.hdc, mGraphics)  ' 创建设备场景相对应的绘图区域(相当于给设备场景创建一个画板)
图形_填充_矩形 (mGraphics, MakeR*F0, dis.rcItem.top, dis.rcItem.right + 2, 选择 (dis.itemData = 3, 8, 26)), RGB2ARGB (选择 (dis.itemData = 3 dis.itemData = 1 dis.itemState = 256, #白色, 16023874)))  ' 画出一个矩形块,16023874是蓝色
判断 (dis.itemData = 3)  ' 分隔条
图形_画直线 (mGraphics, RGB2ARGB (15329769), 0, dis.rcItem.top + 2, dis.rcItem.right + 2, dis.rcItem.top + 2)  ' 绘制分割线
' 按钮
判断 (dis.itemData = 1)  ' 绘制禁止,用灰色填充
colour = #浅灰
colour = 选择 (dis.itemState = 256, #深灰, #白色 )  ' 选择一下吧
如果真 (dis.itemData = 8 dis.itemData = 9)
图形_绘图缩放在 (mGraphics, 菜单对钩, MakeR*F13, dis.rcItem.top + 7, 10, 8), MakeR*F选择 (dis.itemState = 256, 0, 10), 0, 10, 8))  ' 缩小,给人一定的立体感
菜单文本 = 取空白文本 (256)
GetMenuString (dis.hwndItem, dis.itemID, 菜单文本, 256, 0)  ' GetMenuString是计算机编程语言函数。他的功能是将指定菜单项的正文字符串拷贝到指定缓冲区。
如果真 (菜单文本 = “” dis.itemID = 0)
' 没用的
菜单文本 = 子文本替换 (菜单文本, “&”, “”, , 1, )  ' 这个就除了,反正也显示不出来
如果真 (dis.itemID = 113)
判断 (dis.rcItem.top = 0 dis.rcItem.top = 132)
' 没用的
' 没用的

图形_画文本 (mGraphics, MakeR*F36, dis.rcItem.top + 6, dis.rcItem.right - 40, 16), A2W (菜单文本), 全局_默认字体, RGB2ARGB (colour), 菜单格式.取指针 ())  ' 写出文本“菜单格式.取指针 ()”是为了和系统默认字体接轨
GdipDeleteGraphics (mGraphics)  ' 清除画布的函数


注释量是不是特别的多?
看看效果:

本程序代码虽说少(但是短小精悍),作用还是可以的(主要是好看),开发Ex自绘的小伙伴可以看看!!
源码回复下载!!
感谢您的支持!(好评打赏走一波~!)
[hide=d99999] 自绘菜单.zip (497.32 KB, 下载次数: 147) [/hide]

作者: 猪猪zzz    时间: 2018-4-5 11:26
顶顶顶顶顶顶顶顶顶顶顶顶

作者: Fate    时间: 2018-4-5 11:36
支持~
作者: Xw‘小威    时间: 2018-4-5 11:54
最喜欢发完源码再解释一番的了。
作者: 壹抹男人味    时间: 2018-4-5 12:01
Six
作者: 独语    时间: 2018-4-5 12:32
支持下         

作者: fllasuka    时间: 2018-4-5 12:35
支持下                                       
作者: anner    时间: 2018-4-5 13:16
注释(精确到行)
作者: happyweeks365    时间: 2018-4-5 14:10
嗯,先回复试试看@~@.
作者: 网络注册会员    时间: 2018-4-5 14:14
支持你一下
作者: 工程师8421    时间: 2018-4-5 15:21
源码回复下载!支持源码!
作者: 堕天圣黑猫    时间: 2018-4-5 17:09
这个菜单挺漂亮啊。,= ̄ω ̄=
作者: longsui48    时间: 2018-4-5 17:21
有掌声 666啊
作者: zzzzzzzz88    时间: 2018-4-5 17:38
参观一下!!!!
作者: 八岁大大    时间: 2018-4-7 05:21
66666666666666
作者: wanzhenghe999    时间: 2018-4-7 09:36
谢谢楼主的分享!

作者: 你可知嘛噶    时间: 2018-4-7 20:08
        新技能已get√
作者: 易团雪    时间: 2018-4-8 01:25
在系统菜单上画的吧,那可以加图标了。
作者: 登峰望岳    时间: 2018-4-8 09:08
感谢楼主分享!!!
作者: 15887059803    时间: 2018-4-8 10:48
感谢分享支持开源
作者: 风中冰雨    时间: 2018-4-8 16:05
看看。。。。。。。。。。

作者: jhai    时间: 2018-4-8 20:57
好东西,谢谢楼主!!!!!!!!!!!!!

作者: 王者路太艰难    时间: 2018-4-8 22:27
溜溜溜,主要看看是不是和我

作者: HelloBevis    时间: 2018-4-9 08:56
好东西,谢谢楼主!!!!!!!!!!!!!
作者: 易团雪    时间: 2018-4-9 15:26
用API创建的菜单,分割线有问题,第一次弹出菜单有分割线。后面继续右键弹出就没有了。xp系统
作者: 低调小男人    时间: 2018-4-11 19:26
支持楼主,拿走了

作者: 柠檬冰    时间: 2018-4-14 00:07
确实很漂亮赞一个
作者: 网络注册会员    时间: 2018-4-16 08:58
不错挺好看的
作者: 陌落    时间: 2018-4-28 20:47
感谢分享 支持开源
作者: liudao0736    时间: 2018-7-7 00:49
感谢分享 支持开源
作者: longsui48    时间: 2018-7-7 01:06
这个好看的 系在了
作者: 1828902364    时间: 2018-7-9 11:03
感谢分享,很好看
作者: aa304048020    时间: 2018-7-9 20:22
请高手指点 最佳答案
作者: 瓦砾卡卡    时间: 2018-7-22 12:10
多看看论坛总没错
作者: 576003133    时间: 2018-7-25 19:42
模块开源还有点意思,如果模块不开源,太无趣了。
作者: sun0o0sun    时间: 2018-7-29 22:52
谢谢分享,这个教程能帮到我
作者: carter09    时间: 2018-8-3 13:13
感谢楼主分享 可惜不会这语言 哈哈哈
作者: 傻子先生    时间: 2018-8-5 17:10
果然。Ex还系厉害
作者: 2240687678    时间: 2018-8-20 10:31
感谢分享 支持开源1
作者: 落寞23333    时间: 2018-8-31 09:13
EX菜单唉 棒棒棒
作者: 一把小钢刀    时间: 2018-9-3 10:42
一看就高深莫测,我全都看不懂
作者: 1136767432    时间: 2018-9-11 10:07
提示: 作者被禁止或删除 内容自动屏蔽
作者: 霸哥    时间: 2018-9-13 15:17
太天真了  你真的以为你加了这么多的注释我就能看懂了?
作者: zhy2331343    时间: 2018-9-15 11:32
学习下。。。。
作者: 程哥哥    时间: 2018-9-15 23:31
感谢分享,支持!!!
作者: wyr    时间: 2018-9-27 18:04
感谢分享!又学到了新技能。
作者: 1592363624    时间: 2018-9-28 11:29
ex不会玩 有没有教程什么的  每次试一下  放一个ex的组件 整个程序就是透明的 点不了了
作者: cococo789    时间: 2018-10-3 00:34
啥都好就是看不懂
作者: kiss0459    时间: 2018-10-4 21:33
很牛很强大,我喜欢
作者: 位与    时间: 2018-10-5 07:36
提示: 作者被禁止或删除 内容自动屏蔽
作者: Ansel9    时间: 2018-10-7 10:43
支持开源~!感谢分享
作者: wxfhf520    时间: 2018-10-10 18:22
只能给你十个赞~~~
作者: 途码    时间: 2018-10-17 15:15
感谢分享,想学习一下~
作者: gowy111    时间: 2018-11-2 19:00
条目高度30 二级菜单 的小黑色箭头怎么处理呢~~~~~~
作者: litaomn    时间: 2018-11-2 19:44
写一个菜单这么麻烦
作者: 北柠    时间: 2018-11-7 10:32
厉害了,大佬的精品,会好好学习
作者: lugeyzj    时间: 2018-11-10 23:29
看看可不可以
作者: 彡Ksjsd风云    时间: 2019-1-10 13:19
ex不行啊,xp系统打开就GG了
作者: 小jj    时间: 2019-1-13 12:28
厉害厉害厉害厉害厉害厉害厉害厉害厉害厉害厉害厉害厉害厉害厉害厉害
作者: FBI追风大大    时间: 2019-2-10 10:17
666666666666666666
作者: 没有细胞的人    时间: 2019-2-12 23:22
66666666666666
作者: 棋牌开发定制    时间: 2019-3-23 10:43
学习了,哦哦!!!666
作者: 龙大创翼    时间: 2019-5-28 03:57
cai.插入项目 (, , “k”, , 1, , , )
作者: 落寞23333    时间: 2019-9-21 18:29
自绘菜单好看
作者: 108937101    时间: 2021-12-20 16:36
好东西
作者: zhangkun2001    时间: 2022-1-31 11:20
学习了,哦哦
作者: zhangkun2001    时间: 2022-9-24 09:48
自绘菜单好看
作者: benrui667    时间: 2024-8-20 09:12
学习学习 感谢分享




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4