zjh2785 发表于 2018-12-8 22:57:27

【源码】仿天正屏幕菜单(更新)

本帖最后由 zjh2785 于 2018-12-8 23:18 编辑

之前,写过一个【原创】类似天正屏幕菜单效果======开源

但是可能有些朋友绝对麻烦,而且菜单内容是在源代码里面定义好的,也就是说发布之后想要增加菜单项就不可能了,我自己也觉得不是很方便;索性重新写了一版,这个版本比较灵活又简单,调用代码只需要一行
public void Initialize()
{
    CUI.ScreenMenu.Show();
}

若需添加菜单,修改目录下的cmd.xml文件即可,是不是很简单?哈哈



【写的比较乱,大家将就着看吧^_^】
1、所有的菜单项定义在外部文件的cmd.xml里面,并且支持嵌套(伸缩菜单里面还可以存在子伸缩菜单),

2、大大提高图标定义的灵活性,支持指定文件、DLL中的图标索引;代码中有一项添加支持目录的功能,其作用是将指定的目录加入到控件里面去,比如“C:\ABC\”,加入之后就可以在指定图标文件的时候不需要写文件的全称“C:\ABC\Resource.dll”,只需要写“Resource.dll”就可以自动找到这个文件;程序默认添加了C:\Program Files\Autodesk\AutoCAD 2014\zh-CN为支持目录,
也可以自己在代码中添加更多   foldBar.icoSupportPath.Add("目录");
因为我发现CAD很多自带的图标,都在这个文件夹里面,添加了这个目录后 ,后面就可以直接写"pc3EditRes.dll"、"acadres.dll"就可以访问目录下的这个文件了,


至于如果确定哪个文件中有图标,我这里介绍一款软件:魔方(如果有更好的软件,欢迎告诉我,哈哈), 魔方里面有一个"软媒图标大师", 这个软件可以扫描文件夹:



请大家务必打开源码中的cmd.xml看看。
可用的标识文字(不区分大小):
Group:定义一个组;
示例:
<Group Title ="组的标题" TextColor(可选) ="Coral" BackColorr(可选) ="AliceBlue">
    <Item Command ="_.options" ImageFile ="acadres.dll" ImageIndex = "97" TextColor ="ControlText">选项设置</Item>
</Group>


Item:定义一个菜单项;
示例:
<Item Command ="_.options" ImageFile ="acadres.dll" ImageIndex = "97" TextColor ="ControlText" BackColorr="Control">选项设置</Item>
<Item Command ="_.options" ImageFile ="C:\image.jpg" ImageIndex = "" TextColor ="ControlText">选项设置</Item>


定义一个分隔符
示例:
<Item>-</Item>


Title:组的名称,仅用于组;
TextColor:文本颜色,组、菜单项通用(可选)
BackColor:背景颜色,组、菜单项通用(可选)
Command:命令行,例如"line""pline",仅用于菜单项;
Imagefile:图标文件的完整路径"C:\ABC\Resource.dll",也可以通过添加支持目录"C:\ABC"从而只需要指定文件名称Resource.dll即可,仅用于菜单项;
Imageindex:图标索引,指图像文件中的索引值,如果图标文件(ImageFile)为图像文件,此标志请填""空文本,仅用于菜单项;


上面所用的****Color颜色值为文本,及VS支持的代表颜色的文字,如:Control , Red, Blue, 后面我会附一个颜色对照表;


大部分DIY全部在cmd.xml文件里面确定,可以改变指定菜单项的文字颜色、背景颜色、图标等;
介绍先写这么多,我后面会发源码,有了源码之后,任何介绍都显得苍白;
如果有不明确的 ,欢迎跟帖讨论,我会定期为大家解答(能力范围之内的)
个人还有一个功能没有实现,就是滚动的问题, 我希望在不显示滚动条的情况下,如果屏幕满了,鼠标中键可以控制滚动。抛砖引玉,源码在手想怎么改就怎么改,本人编程新手,希望可以得到各位宝贵的建议,包括滚动条的事情;




改源代码是从我项目中剔除的,已测试成功,其他无关 的代码我已经注释掉,
编译、运行环境:VS2010、AutoCAD2014



颜色值参考,压缩包内为一个html文件, 用浏览器直接打开可用;














Mai1993 发表于 2019-4-22 00:03:47

:lol 实现鼠标滚动就好了,不然东西多了,显示不完整,也没滚动条,鼠标也不能滚动。

hisum 发表于 2023-8-11 23:21:31

请教大神有更新的版本吗?编译的时候出现“严重性        代码        说明        项目        文件        行        禁止显示状态
错误                无法处理文件 FoldBar\Resource.resx,因为它位于 Internet 或受限区域中,或者文件上具有 Web 标记。要想处理这些文件,请删除 Web 标记。        AutoCAD CSharp plug-in1                       
” 错误,请问如何解决?

gufeng 发表于 2019-8-14 11:14:25

个人还有一个功能没有实现,就是滚动的问题, 我希望在不显示滚动条的情况下,如果屏幕满了,鼠标中键可以控制滚动
FoldBar 放置一个panel,panel的大小右边超出FoldBar,启动时滚动条就不会显示出来



spp_wall 发表于 2018-12-10 09:24:30

谢谢分享!!!!!!!!!!

pengfei2010 发表于 2018-12-10 11:30:20

感谢楼主的分享,思路不错,学习了

BaoWSE 发表于 2018-12-10 12:15:40

保存学习 谢谢楼主分享宝贵经验!

j15tty 发表于 2018-12-10 12:44:48

非常感谢楼主!!!!

mokson 发表于 2018-12-10 15:47:29

感谢分享,楼主辛苦了。

tianyi1230 发表于 2018-12-10 17:20:18

好牛啊,感觉和原来一个牛叉的作者写的类似的差不多,这个看起来更好看一些!

hhh454 发表于 2018-12-10 21:17:15

这个和加载到ps里面的插件类似,很好,

蓝盾设计 发表于 2018-12-11 03:03:25

好好学习!

死神去了 发表于 2018-12-11 08:51:08

非常感谢楼主!!!!
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 【源码】仿天正屏幕菜单(更新)