【源码】仿天正屏幕菜单(更新)
本帖最后由 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文件, 用浏览器直接打开可用;
:lol 实现鼠标滚动就好了,不然东西多了,显示不完整,也没滚动条,鼠标也不能滚动。 请教大神有更新的版本吗?编译的时候出现“严重性 代码 说明 项目 文件 行 禁止显示状态
错误 无法处理文件 FoldBar\Resource.resx,因为它位于 Internet 或受限区域中,或者文件上具有 Web 标记。要想处理这些文件,请删除 Web 标记。 AutoCAD CSharp plug-in1
” 错误,请问如何解决? 个人还有一个功能没有实现,就是滚动的问题, 我希望在不显示滚动条的情况下,如果屏幕满了,鼠标中键可以控制滚动
FoldBar 放置一个panel,panel的大小右边超出FoldBar,启动时滚动条就不会显示出来
谢谢分享!!!!!!!!!! 感谢楼主的分享,思路不错,学习了 保存学习 谢谢楼主分享宝贵经验! 非常感谢楼主!!!! 感谢分享,楼主辛苦了。 好牛啊,感觉和原来一个牛叉的作者写的类似的差不多,这个看起来更好看一些! 这个和加载到ps里面的插件类似,很好, 好好学习! 非常感谢楼主!!!!