- MxDraw 云图
- 快速入门
- 前端 mxdraw 和 mxcad 库预览编辑图纸
- 后台使用 Node.js 调用梦想 API
- CAD 与 GIS 集成说明
- 梦想云图 Node.JS 服务
- iOS 开发
- 安卓开发
- 网页 CAD 开发
- 网页快速入门 aspaps.netphpjava
- 图形数据库
- 参数化绘图
- 交互绘图
- 选择集
- 扩展数据
- 自定义实体
- 自定义命令
- 光栅图处理
- 图面搜索
- 控件事件
- 打印控制
- 界面控制
- COM 开发
- 视频教程
- VB 快速入门
- Delphi 快速入门
- CSharp 快速入门
- java 快速入门
- QT 快速入门
- 易语言快速入门
- Powerbuilder 快速入门
- wpf 控件入门
- 图形数据库
- 参数化绘图
- 交互绘图
- 选择集
- 扩展数据
- 自定义命令
- 自定义实体
- 打印控制
- 控件事件
- 图面搜索
- 光栅图处理
- 界面控制
- C++ 开发
- C++ bulider 快速入门
- C++ 快速入门(VS2010)
- C++ 快速入门(com 接口)
- 图纸数据库
- 参数化绘图
- 交互绘图
- 选择集
- 扩展程序
- 扩展数据
- 自定义函数
- 自定义实体
- 光栅图处理
- 图面搜索
- 控件事件
- 界面控制
- 常见问题
- 试用技术服务申请
- 会员下载最新程序
- 备用下载
- 控件安装运行说明
- 控件最新更新
- 控件功能简介
- 控件图形数据库
- 控件界面控制
- 控件命令执行原理
- 控件系统变量说明
- 控件常见问题说明
- 修改对象属性
- 网页加载 CAD 图纸的两个方案
- MxDraw3D 控件
- 前端基础工程化知识
菜单栏
显示或隐藏接口
COM接口: ocx的属性, ShowModelBar。例如JS语言,隐藏菜单栏:
<param name="ShowMenuBar" value="0">
CAD控件界面菜单栏的显示或隐藏,js代码实现如下:
//隐藏/显示菜单栏 function HideMenuBar() { mxOcx.ShowMenuBar(isShow); isShow = !isShow; }
隐藏菜单栏效果如下:
主要用到函数说明:
函数名:_DMxDrawX::HideMenuBarControl
隐藏或显示工具条上的按钮,成功返回TRUE。详细说明如下:
参数 | 说明 |
---|---|
VARIANT_BOOL isHide | 是否隐藏按钮 |
sControlName | 按钮名称,多个按钮名称,可以用逗号分隔开,为空,隐藏或显示所有按钮 |
例如隐藏菜单栏上的新建和打开按钮js中实现代码说明:
mxOcx.HideMenuBarControl("新建(&N),打开(&O)",true);
隐藏前:
隐藏后:
菜单栏文件
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,如不为空,可以在CAD控件的命令执行事件中响应菜单点击事件: ImplementCommandEvent。
ID类型:
目前CAD控件内部使用,一般为空。
比如:菜单图标从本地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,它支持从服务器上加载菜单文件
帮助如下图:
如Js语言从服务器加载菜单,菜单文件相对于当前网页:
<param name="Iniset" value="MenuFile=./mymenu.mun">
相对服务器路径, "~"开头,如下:
<param name="Iniset" value="MenuFile=~/mymenu.mun">
重新从文件加载菜单接口:
COM接口,它是自定义函数 | MxDrawXCustomFunction::Mx_ReLoadMenu |
显示或隐藏菜单项
COM接口 | _DMxDrawX::HideMenuBarControl |
例如:
mxOcx.HideMenuBarControl("新建(&N),打开(&O)",true);
JS代码:
function InitMxDrawX() { if (mxOcx) { if (!mxOcx.IsIniting()) { clearInterval(mxtime); // 控件初始化完成,需要在启动做的事,在这里做 mxOcx.HideMenuBarControl("新建(&N),打开(&O)",true); } } }}
在菜单栏添加一个按钮
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
目录下。
2、若需要图标从服务器上面加载,需要把图标文件和菜单定义文件上传到服务器
把mxcad.mnu, mytoolbar.bmp文件放到服务器上,并放在同一个目录下,保证能直接从ie中访问。
3、Js程序里引用菜单
菜单定义文件放在当前网页目录下。
<param name="Iniset" value="MenuFile=./mxcad.mnu">
4、响应命令执行事件,如下:
function DoCommandEventFunc(iCmd) { if (iCmd == 100) { //该函数在mxcustom.js中 alert("菜单按钮点击"); } }
document.getElementById("MxDrawXCtrl").ImplementCommandEventFun = DoCommandEventFunc;
效果如下:
右键弹出菜单
CAD控件支持鼠标右键弹出菜单,菜单的文件格式和前面的主菜单文件格式一样。 详细参考例子,samples\ie\iedemoTest.htm
。
COM接口 | DMxDrawX::TrackPopupMenu |
在B/S模式下,下面一步一步的说明如何支持该功能:
1、新建菜单定义文件
新一个文本文件: mxpop.mnu,内容如下:
定义一个菜单按钮,按钮名为MyMenuButtonName,图标是服务器上加载,图标名为mytoolbar.bmp,按钮点击执行命令,命令id为99。
"MxDrawMenuBarFile" "MxDraw.dll" (214 211 206) "top" "主菜单" "Y" "POPMENUS" "文件(&F)" "MyMenuButtonName(&N)" "" "" "web:mytoolbar.bmp" "" "99" "POPMENUE"
2、把文件上传到服务器
把mxpop.meu, mytoolbar.bmp文件放到服务器上,并放在同一个目录下,保证能直接从ie中访问。
3、响应鼠标右键事件,弹出菜单
菜单定义文件放在当前网页目录下。
document.getElementById("MxDrawXCtrl").ImplementMouseEventFun = MouseEvent;
function MouseEvent(dX, dY, lType) { // 3表示鼠标右键按下 if(lType == 3) { var sPopMenu = mxOcx.GetOcxAppPath() + ".\\mxpop.mnu" mxOcx.TrackPopupMenu(dX, dY, sPopMenu); // 设置1,表示鼠标事件,不再往下传递. mxOcx.SetEventRet(1); } }
4、响应命令执行事件,如下:
function DoCommandEventFunc(iCmd) { if (iCmd == 99) { //该函数在mxcustom.js中 alert("菜单按钮点击"); } }
document.getElementById("MxDrawXCtrl").ImplementCommandEventFun = DoCommandEventFunc;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论