返回介绍

菜单栏

发布于 2023-08-09 23:10:33 字数 8248 浏览 0 评论 0 收藏 0

CAD控件界面菜单栏的显示或隐藏,C#代码实现如下:

//隐藏/显示菜单栏
private void HideMenuBar()
{
    axMxDrawX1.ShowMenuBar = isShow;
    isShow = !isShow;
}

设计窗口时也可在属性栏中修改ShowMenuBar的值,如下图所示:

menubars.png

当值为True时,如下图:

showmenubar.png

当值为False时,如下图:

hidemenubar.png

显示或隐藏菜单项

COM接口_DMxDrawX::HideMenuBarControl

主要用到函数说明:

_DMxDrawX::HideMenuBarControl

隐藏或显示工具条上的按钮,成功返回TRUE。详细说明如下:

参数说明

VARIANT_BOOL isHide

是否隐藏按钮

sControlName

按钮名称,多个按钮名称,可以用逗号分隔开,为空,隐藏或显示所有按钮

例如隐藏菜单栏上的新建和打开按钮c#中实现代码说明:

 axMxDrawX1.HideMenuBarControl("新建(&N),打开(&O)",true);

隐藏前:

hidebeforemnub.png

隐藏后:

hideaftermnub.png

菜单栏文件

CAD控件MxDraw52.dll所在目录下,所有的mnu文件,都是 菜单定义文件 ,它是文本文件,用记事本打开编辑,格式如下:

文件中第一行是菜单文件头,每列内容如下 :

文件类型字符串资源文件名(后面菜单的图标默认从该dll中加载)图标的透明颜色位置菜单名是否可以浮动,Y \N
"MxDrawMenuBarFile""MxDraw.dll"(214 211 206)"top""主菜单""Y"

后面每列的内容如下:

命令名称点击执行的命令图标索引字符串资源文件名命令提示字符串"命令ID"ID类型(目前控件内部使用,一般为空)
"新建(&N)"Mx_New"IDB_NEW_BITMAP""""""1"""

命令名称:

新建(&N)。

点击执行的命令:

COM接口使用DMxDrawX::RegistUserCustomCommand注册命令。

图标索引字符串:

IDB_NEW_BITMAP。

资源文件名:

1. 为空取默认资源文件名,该名称需要去掉控件版本号如:MxDraw52.dll写成MxDraw.dll,控件会根据具体情况加上这个版本号。

2. 资源文件如是local:开头,表示是一个本地bmp文件,如:取mytoolbar.bmp做工具按钮图标:local:mytoolbar.bmp

比如:菜单图标从本地bmp文件加载:

"自定义新建(&N)" "Mx_New" "IDB_NEW_BITMAP" "local:mytoolbar.bmp"

3. 资源文件如是web:开头,表示是一个网络服务器上的bmp文件,如:取mytoolbar.bmp做工具按钮图标: web:mytoolbar.bmp

比如:菜单图标从服务器bmp文件加载,bmp文件与菜单文件在同一个服务器目录中:

"自定义新建(&N)" "Mx_New" "IDB_NEW_BITMAP" "web:mytoolbar.bmp"

命令提示字符串:

为空。

命令ID:

指定菜单点击后响应的命令事件id,如不为空,可以在控件的命令执行事件中响应菜单点击事件: ImplementCommandEvent。

ID类型:

目前控件内部使用,一般为空。

比如:菜单图标从本地bmp文件加载:

"自定义新建(&N)" "Mx_New" "IDB_NEW_BITMAP" "local:mytoolbar.bmp"

比如:菜单图标从服务器bmp文件加载,bmp文件与菜单文件在同一个服务器目录中:

"自定义新建(&N)" "Mx_New" "IDB_NEW_BITMAP" "web:mytoolbar.bmp"

从指定菜单文件加载

COM接口: Iniset属性,MenuFile=mymenu.mun,它支持从服务器上加载菜单文件

帮助如下图:

iface.png

重新从文件加载菜单接口:

COM接口,它是自定义函数MxDrawXCustomFunction::Mx_ReLoadMenu

C#代码,如下调用:

axMxDrawX1.Call("Mx_ReLoadMenu", "mxcad.mnu");

在菜单栏添加一个按钮

1、新建菜单定义文件

新建一个文本文件将后缀名改为mnu(例如mxcad.mnu,此文件可以用记事本打开),文本里面的内容如下:

定义一个菜单按钮,按钮名为自定义新建,图标可以从服务器上加载(从服务器上加载写为web:mytoolbar.bmp),也可以从本地加载(从本地加载写为local:mytoolbar.bmp,本示例图标从本地上加载),图标名为mytoolbar.bmp,按钮点击执行命令,命令id为100。

// 菜单条文件头说明.
// "文件类型字符串" "资源文件名" "透明颜色" "位置,可以是:top,left,bottom,right" "是否可以浮动,Y \N "
"MxDrawMenuBarFile" "MxDraw.dll" (214 211 206) "top" "主菜单" "Y"

// 菜单内容说明
// "命令名称"  "命令" "图标索引字符串" "资源文件名" "命令提示字符串" "命令ID"  "ID类型" 
"POPMENUS" "文件(&F)"
"自定义新建(&N)1" "" "IDB_NEW_BITMAP" "local:mytoolbar.bmp"   "" "100" "ID_NEW_BUTTOM"
"自定义新建(&N)2" "" "IDB_NEW_BITMAP" "local:mytoolbar.bmp"   "" "100" "ID_NEW_BUTTOM"
"自定义新建(&N)3" "" "IDB_NEW_BITMAP" "local:mytoolbar.bmp"   "" "100" "ID_NEW_BUTTOM"
"新建(&N)" "Mx_New" "IDB_NEW_BITMAP" "MxEdit.mrx"  "" "" "ID_NEW_BUTTOM"
"打开(&O)" "Mx_OpenMxg" "IDB_OPENMXG_BITMAP" "" "" "" "ID_OPEN_BUTTOM"
"打开DWG文件(&M)" "OpenDwg" "IDB_OPENDWG_BITMAP" "" "" ""  "ID_OPENDWG_BUTTOM"
"SEPARATOR"
"最近文件(&X)" "Mc_Empty" "" "" "" "" "ID_FILE_MRU_FILE1"
"SEPARATOR"
"退出(&X)" "Mc_Empty" "" "" "" "" "ID_APP_EXIT"
"POPMENUE"

“//”是文件中的注释

文件中后面每行代表一个菜单项

"POPMENUS" "文件(&F)",表示一个弹出菜单开始

"POPMENUE" 表示弹出菜单的结束

将图标文件mytoolbar.bmp和菜单定义文件mxcad.mnu放到MxDraw52\Bin\vc100目录下。

L%XVY98]%IJ)ED~3~NWJS{N.png

2、若需要图标从服务器上面加载,需要把图标文件和菜单定义文件上传到服务器

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文