0
点赞
收藏
分享

微信扫一扫

CAD界面控制


在我们安装好mxdrawCAD后,我们初次打开CAD就是下面的界面。CAD控件界面上所有元素都可以控制显示或隐藏,下面将讲解如何控制界面按钮的显示与隐藏。

                                                              

CAD界面控制_自定义

首先讲解界面上的工具栏 ;

1、显示或隐藏接口

(1)显示或隐藏所有工具条:

COM接口

ocx的属性, ShowToolBars

(2)例如JS语言隐藏工具条:

1

​<param name=​​​​"ShowToolBars"​​​ ​​value=​​​​"0"​​​​>​

(3)显示或隐藏指定工具条, 工具条名称会在后面的工具条文件格式中说明。

COM接口

_DMxDrawX::ShowToolBar

(4)_DMxDrawX::ShowToolBar

显示隐藏工具条,详细说明如下:

参数

说明

BSTR pszToolBarName

工具条文字名

VARIANT_BOOL isShow

是否显示工具条

(5)CAD控件界面工具栏的显示或隐藏,js代码实现如下:

1

2

3

4

5

6

7

8

9

10

11

​//隐藏/显示工具栏​

​function​​​ ​​HideToolbar()​

​{​

​mxOcx.ShowToolBar(​​​​"常用工具"​​​​,isShow);​

​mxOcx.ShowToolBar(​​​​"绘图工具"​​​​,isShow);​

​mxOcx.ShowToolBar(​​​​"编辑工具"​​​​,isShow);​

​mxOcx.ShowToolBar(​​​​"特性"​​​​,isShow);​

​mxOcx.ShowToolBar(​​​​"ET工具"​​​​,isShow);​

 

​isShow = !isShow;​

​}​

隐藏工具栏效果如下:

                                                         

CAD界面控制_加载_02

2、隐藏或显示工具条上的按钮

(1)主要用到函数说明:_DMxDrawX::HideToolBarControl   

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

参数

说明

BSTR pszToolBarName  

工具条名称

BSTR pszControlName

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

VARIANT_BOOL isHide

是否隐藏按钮

VARIANT_BOOL isAutoRecalcLayout

是否自动重新布局窗口上的工具条

例如隐藏绘图工具栏上的绘线和绘矩形框按钮js中实现代码说明:

1

​mxOcx.HideToolBarControl(​​​​"绘图工具"​​​​,​​​​"绘线,绘矩形框"​​​​,​​​​true​​​​,​​​​true​​​​);​

隐藏前:

CAD界面控制_自定义_03

隐藏后:

CAD界面控制_自定义_04

(2)MxDrawXCustomFunction::Mx_HideToolBarControl     

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

参数

说明

IN LPCTSTR pszToolBarName

工具条名称

IN LPCTSTR pszControlName = NULL

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

IN BOOL isHide = TRUE

是否隐藏按钮

IN BOOL isAutoRecalcLayout = TRUE

是否自动重新布局窗口上的工具条

例如隐藏常用工具栏上的保存,保存为mxg文件,另存为dwg文件按钮js中实现代码说明:

1

2

3

4

​var​​​ ​​param = mxOcx.Call(​​​​"Mx_NewResbuf"​​​​,​​​​""​​​​);​

​param.AddString(​​​​"常用工具"​​​​);​

​param.AddString(​​​​"保存,保存为mxg文件,另存为dwg文件"​​​​);​

​mxOcx.CallEx(​​​​"Mx_HideToolBarControl"​​​​, param);​

隐藏前:

CAD界面控制_工具条_05

隐藏后:

CAD界面控制_自定义_06

3、禁用或激活CAD控件工具条上的某个命令按钮

(1)主要用到函数说明:_DMxDrawX::EnableToolBarButton

禁用或激活CAD控件工具条上的某个命令按钮。详细说明如下:

参数

说明

BSTR pButtonName

工具条中的按钮名称

VARIANT_BOOL isEnable

是否禁用

例如页中禁用打开按钮代码:

1

​document.getElementById(​​​​"MxDrawOcxCtrl"​​​​).EnableToolBarButton(​​​​"打开dwg文件"​​​​,0);​

禁用前:

CAD界面控制_工具条_07

禁用后:

CAD界面控制_工具条_08

4、工具条文件

(1)CAD控件MxDraw52.dll所在目录下,所有的mxt都是工具条定义文件,每个mxt文件就是一个工具条, 如下:

文件名

说明

MxDraw-ToolBar.mxt

常用工具条

MxDraw-ToolBar-Draw.mxt

绘图工具条

MxDraw-ToolBar-DrawParam.mxt

特性工具条

MxDraw-ToolBar-Edit.mxt

编辑工具条

MxDraw-ToolBar-ET.mxt

扩展工具条

(2)把不需要的工具条文件删除,CAD控件加载时就不会显示该工具条。它是文本文件,用记事本打开编辑,格式如下:“//”是文件中的注释。文件中第一行是工具条文件头信息,每列内容如下:

如:("MxDrawToolBarFile" "MxDraw.dll" (214 211 206) "top" "常用工具" "Y")

第几列

例程中的内容

说明

1

"MxDrawToolBarFile"

工具条文件标志字符串

2

"MxDraw.dll"

工具条中按钮图片资源加载文件 注:后面图标默认从该dll中加载

3

"(214 211 206)"

在资源文件中,按钮图片的透明色

4

"top"

位置,可以是:top,left,bottom,right

5

"常用工具"

工具条名称 注:显示\隐藏函数会使用

6

"Y"

是否可以浮动,Y \N

(3)文件中后面每行代表一个工具条按钮。每列的内容如下:如:("打开网上dwg文件" "打开网上dwg文件" "_OpenWebDwg" "IDB_OPENWEBDWG_BITMAP" "" "" "" "Y")

命令名称

命令提示字符串

命令名

控钮在资源文件中的位图ID

ID类型

资源文件名

命令ID

没有命定义时,是否不要加载工具按钮

打开网上dwg文件

打开网上dwg文件

_OpenWebDwg

IDB_OPENWEBDWG_BITMAP

""

""

""

"Y"

(4)

命令名称:

"打开网上dwg文件"。

命令提示字符串:

"打开网上dwg文件"。

命令名:

COM接口:DMxDrawX::RegistUserCustomCommand注册命令

控钮在资源文件中的位图ID:

" IDB_OPENWEBDWG_BITMAP "。

ID类型:

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

(5)资源文件名:

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

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

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

(6)命令ID:

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

没有命定义时,是否不要加载工具按钮:"Y"

自定义按钮参考例子:samples\AspNet\AspNet\My-MxDraw-ToolBar.txt。

比如:按钮图标从本地bmp文件加载:

1

​(​​​​"自定义打文件按钮"​​​ ​​"自定义打文件按钮"​​​ ​​"Mx_OpenMxg"​​​ ​​""​​​ ​​""​​​ ​​" local:mytoolbar.bmp"​​​​)​

比如:按钮图标从服务器bmp文件加载,bmp文件与工具条文件在同一个服务器目录中:

1

​(​​​​"自定义打文件按钮"​​​ ​​"自定义打文件按钮"​​​ ​​"Mx_OpenMxg"​​​ ​​""​​​ ​​""​​​ ​​"web:mytoolbar.bmp"​​​​)​

5、从指定文件加载

(1)CAD控件默认是加载CAD控件程所在目录下的所有mxt文件,下面介绍如何显示指定加载工具文件。

(2)COM接口: ToolBarFiles属性,它支持从服务器上加载工具文件,多个工具条文件用逗号隔开

帮助如下图:

CAD界面控制_自定义_09

如Js语言从服务器加载工具条文件, 工具条文件相对于当前网页:

1

2

​<param name=​​​​" ToolBarFiles"​​ 

​value=​​​​" ./My-MxDraw-ToolBar.txt,MxDraw-ToolBar-DrawParam.mxt,MxDraw-ToolBar-Draw.mxt,MxDraw-ToolBar-Edit.mxt"​​​​>​

暂不加载工具条文件,如下:

1

​<param name=​​​​" ToolBarFiles "​​​ ​​value=​​​​" Empty.mxt"​​​​>​

6、显示加载工具条文件

(1)CAD控件支持在需要时,再动态加载工具条文件,接口说明如下: 

(2)COM接口: _DMxDrawX::LoadToolBar

帮助文件抓图:

CAD界面控制_工具条_10

7、在工具条添加一个按钮

(1)修改MxDraw52\Bin\vc100目录下的MxDraw-ToolBar.mxt文件:

CAD界面控制_工具条_11

1

2

3

​// 如下,是从工具条所在本地目录的bmp加载,local:表示是个本地的bmp​

​(​​​​"自定义打文件按钮"​​​ ​​"自定义打文件按钮"​​​ ​​"Mx_OpenMxg"​​​ ​​""​​​ ​​""​​​ ​​"local:mytoolbar.bmp"​​​​)​

​(​​​​"自定义打文件按钮"​​​ ​​"自定义打文件按钮"​​​ ​​"Mx_OpenMxg"​​​ ​​""​​​ ​​""​​​ ​​"local:mytoolbar.bmp"​​​​)​

改成:

1

2

3

​// 如下,是从工具条所在网络目录的bmp加载,web:表示是网上加载​

​(​​​​"自定义打文件按钮"​​​ ​​"自定义打文件按钮"​​​ ​​"Mx_OpenMxg"​​​ ​​""​​​ ​​""​​​ ​​"web:mytoolbar.bmp"​​​​)​

​(​​​​"自定义打文件按钮"​​​ ​​"自定义打文件按钮"​​​ ​​""​​​ ​​""​​​ ​​""​​​ ​​"local:mytoolbar.bmp"​​​ ​​"100"​​​​)​

效果如下,多了两个按钮了,用户可以给增加的按钮添加自定义命令。

CAD界面控制_自定义_12

(2)在B/S模式下,一步一步的说一下,如何用户自定义工具条,并响应点击事件。 详细例子可以参考samples\AspNet\AspNet.sln, samples\AspNet\ My-MxDraw-ToolBar.txt。

<1>新建菜单文件

新一个文本文件: My-MxDraw-ToolBar.txt,内容如下:

定一个按钮,按钮名为“自定义按钮“,图标是服务器上加载,图标名为mytoolbar.bmp,按钮点击执行命令,命令id为99。

1

2

​(​​​​"MxDrawToolBarFile"​​​ ​​"MxDraw.dll"​​​ ​​(214 211 206) ​​​​"top"​​​ ​​"MyTest工具"​​​ ​​"Y"​​​​)​

​(​​​​"自定义按钮"​​​ ​​"自定义按钮"​​​ ​​""​​​ ​​""​​​ ​​""​​​ ​​" web:mytoolbar.bmp "​​​ ​​"100"​​​​)​

<2>把文件上传到服务器

把My-MxDraw-ToolBar.txt, mytoolbar.bmp文件放到服务器上,并放在同一个目录下,保证能直接从ie中访问。

<3>Js程序里引用工具条

工具条文件放在当前网页目录下。

1

​<param name=​​​​"ToolBarFiles"​​​ ​​value=​​​​"./ My-MxDraw-ToolBar.txt "​​​​>​

<4>响应命令执行事件,如下:

1

2

3

4

5

6

7

​function​​​ ​​DoCommandEventFunc(iCmd)​

​{​

​if​​​ ​​(iCmd == 100) {​

​//该函数在mxcustom.js中 ​

​alert(​​​​"工具条按钮点击"​​​​);​

​}​

​}​

1

​document.getElementById(​​​​"MxDrawXCtrl"​​​​).ImplementCommandEventFun = DoCommandEventFunc;​

举报

相关推荐

0 条评论