CAD控件:界面控制说明和方法

界面控制

一、简介

CAD控件界面上所有元素都可以控制显示或隐藏。下面逐一介绍,CAD控件界面上的元素位置,如图

 

二、工具栏

1、显示或隐藏接口

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

COM接口

ocx的属性, ShowToolBars

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

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

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

COM接口

_DMxDrawX::ShowToolBar

(4)函数名:_DMxDrawX::ShowToolBar

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

参数

说明

BSTR pszToolBarName

工具条文字名

VARIANT_BOOL isShow

是否显示工具条

(5)CAD控件界面工具栏的显示或隐藏,首先定义一个全局变量isShow,接下来的例子中会用到该变量,如下:

var isShow = false;

(6)js代码实现如下:

//隐藏/显示工具栏
function HideToolbar()
{
mxOcx.ShowToolBar("常用工具",isShow);
mxOcx.ShowToolBar("绘图工具",isShow);
mxOcx.ShowToolBar("编辑工具",isShow);
mxOcx.ShowToolBar("特性",isShow);
mxOcx.ShowToolBar("ET工具",isShow);

isShow = !isShow;

(7)隐藏工具栏效果如下:

 

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

主要用到函数说明:

(1)函数名:_DMxDrawX::HideToolBarControl

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

参数

说明

BSTR pszToolBarName  

工具条名称

BSTR pszControlName

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

VARIANT_BOOL isHide

是否隐藏按钮

VARIANT_BOOL isAutoRecalcLayout

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

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

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

隐藏前:

隐藏后:

 

(2)MxDrawXCustomFunction::Mx_HideToolBarControl

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

参数

说明

IN LPCTSTR pszToolBarName

工具条名称

IN LPCTSTR pszControlName = NULL

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

IN BOOL isHide = TRUE

是否隐藏按钮

IN BOOL isAutoRecalcLayout = TRUE

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

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

var param = mxOcx.Call("Mx_NewResbuf","");
param.AddString("常用工具");
param.AddString("保存,保存为mxg文件,另存为dwg文件");
mxOcx.CallEx("Mx_HideToolBarControl", param);

隐藏前:

隐藏后:

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

主要用到函数说明:

(1)函数名:_DMxDrawX::EnableToolBarButton

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

参数

说明

BSTR pButtonName

工具条中的按钮名称

VARIANT_BOOL isEnable

是否禁用

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

mxOcx. EnableToolBarButton("打开dwg文件",0);

禁用前:

禁用后:

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控件加载时就不会显示该工具条。

(3)它是文本文件,用记事本打开编辑,格式如下:

       “//”是文件中的注释。

(4)文件中第一行是工具条文件头信息,每列内容如下:

如:("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

(5)文件中后面每行代表一个工具条按钮。

(6)每列的内容如下:如:("打开网上dwg文件" "打开网上dwg文件" "_OpenWebDwg" "IDB_OPENWEBDWG_BITMAP" "" "" "" "Y")

命令名称

命令提示字符串

命令名

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

ID类型

资源文件名

命令ID

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

打开网上dwg文件

打开网上dwg文件

_OpenWebDwg

IDB_OPENWEBDWG_BITMAP

""

""

""

"Y"

命令名称:

"打开网上dwg文件"。

命令提示字符串:

"打开网上dwg文件"。

命令名:

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

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

" IDB_OPENWEBDWG_BITMAP "。

ID类型:

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

资源文件名:

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

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

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

命令ID:

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

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

"Y"

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

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

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

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

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

5、从指定文件加载

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

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

帮助如下图:

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

<param name=" ToolBarFiles" 
value=" ./My-MxDraw-ToolBar.txt,MxDraw-ToolBar-DrawParam.mxt,MxDraw-ToolBar-Draw.mxt,MxDraw-ToolBar-Edit.mxt">

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

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

6、显示加载工具条文件

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

(2)COM接口: _DMxDrawX::LoadToolBar

帮助文件抓图:

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

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

// 如下,是从工具条所在本地目录的bmp加载,local:表示是个本地的bmp
("自定义打文件按钮" "自定义打文件按钮" "Mx_OpenMxg" "" "" "local:mytoolbar.bmp")
("自定义打文件按钮" "自定义打文件按钮" "Mx_OpenMxg" "" "" "local:mytoolbar.bmp")

改成:

// 如下,是从工具条所在网络目录的bmp加载,web:表示是网上加载
("自定义打文件按钮" "自定义打文件按钮" "Mx_OpenMxg" "" "" "web:mytoolbar.bmp")
("自定义打文件按钮" "自定义打文件按钮" "" "" "" "local:mytoolbar.bmp" "100")

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

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

(1)新建菜单文件

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

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

("MxDrawToolBarFile" "MxDraw.dll" (214 211 206) "top" "MyTest工具" "Y")
("自定义按钮" "自定义按钮" "" "" "" " web:mytoolbar.bmp " "100")

(2)把文件上传到服务器

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

(3)Js程序里引用工具条

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

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

(4)响应命令执行事件,如下:

function DoCommandEventFunc(iCmd)
{
    if (iCmd == 100) {
        //该函数在mxcustom.js中 
        alert("工具条按钮点击");
}
}
document.getElementById("MxDrawXCtrl").ImplementCommandEventFun = DoCommandEventFunc;

三、菜单栏

1、显示或隐藏接口

(1)COM接口: ocx的属性, ShowModelBar。例如JS语言,隐藏菜单栏:

<param name="ShowMenuBar" value="0">

(2)CAD控件界面菜单栏的显示或隐藏,js代码实现如下:

//隐藏/显示菜单栏
function HideMenuBar()
{
 
    mxOcx.ShowMenuBar(isShow);
    isShow = !isShow;
}

(3)隐藏菜单栏效果如下:

(4)主要用到函数说明:_DMxDrawX::HideMenuBarControl

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

参数

说明

VARIANT_BOOL isHide

是否隐藏按钮

sControlName

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

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

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

隐藏前:

隐藏后:

2、菜单栏文件

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

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

文件类型字符串

资源文件名(后面菜单的图标默认从该dll中加载)

图标的透明颜色

位置

菜单名

是否可以浮动,Y \N

"MxDrawMenuBarFile"

"MxDraw.dll"

(214 211 206)

"top"

"主菜单"

"Y"

(3)后面每列的内容如下:

命令名称

点击执行的命令

图标索引字符串

资源文件名

命令提示字符串

"命令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控件内部使用,一般为空。

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

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

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

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

3、从指定菜单文件加载

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

帮助如下图:

(2)如Js语言从服务器加载菜单,菜单文件相对于当前网页:

<param name="Iniset" value="MenuFile=./mymenu.mun">

(3)相对服务器路径, "~"开头,如下:

<param name="Iniset" value="MenuFile=~/mymenu.mun">

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

COM接口,它是自定义函数

MxDrawXCustomFunction::Mx_ReLoadMenu

5、显示或隐藏菜单项

COM接口

_DMxDrawX::HideMenuBarControl

例如:

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

JS代码:

function InitMxDrawX() {
if (mxOcx) {
if (!mxOcx.IsIniting()) 
{
clearInterval(mxtime);
// 控件初始化完成,需要在启动做的事,在这里做

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

6、在菜单栏添加一个按钮

(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;

(5)效果如下:

7、右键弹出菜单

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;

四、标尺栏

1、显示或隐藏接口:

COM接口:

DMxDrawX::ShowRulerWindow

2、例如隐藏标尺栏,JS:

<param name="ShowRulerWindow" value="0">

3、CAD控件界面标尺栏的显示或隐藏,js代码实现如下:

//隐藏/显示标尺栏
function HideRulerWindow()
{
 
    mxOcx.ShowRulerWindow(isShow);
    isShow = !isShow;
}

4、隐藏标尺栏效果如下:

五、属性栏

1、显示或隐藏接口:

COM接口

DMxDrawX::ShowPropertyWindow

2、例如显示属性栏,JS:

<param name="ShowPropertyWindow" value="1">

3、属性栏功能,默认是没有启用的,需要在CAD控件启动时初始化启用。

COM: IniSet="EnablePropertyWindow=Y"如下图说明:

4、例如,Js调用启用属性窗口功能,但不显示。

<param name="Iniset" value="LoadMrx=PropertyEditor,EnablePropertyWindow=Y">

5、CAD控件界面属性栏的显示或隐藏,js代码实现如下:

//隐藏/显示属性栏
function HidePropertyWindow()
{

mxOcx.ShowPropertyWindow(isShow);
isShow = !isShow;
}

6、隐藏属性栏效果如下:

六、命令栏

1、显示或隐藏接口:

COM接口

_DMxDrawX::ShowCommandWindow

2、例如隐藏命令栏,JS:

<param name="ShowCommandWindow" value="0">

3、CAD控件界面命令栏的显示或隐藏,js代码实现如下:

//隐藏/显示命令栏
function HideCommandWindow()
{

mxOcx.ShowCommandWindow(isShow);
isShow = !isShow;
}

4、隐藏命令栏效果如下:

七、模型栏

1、显示或隐藏接口:

COM接口

_DMxDrawX::ShowModelBar

2、例如隐藏模型栏,JS:

<param name="ShowModelBar" value="0">

3、CAD控件界面模型栏的显示或隐藏,js代码实现如下:

//隐藏/显示模型栏
function HideModelBar()
{

mxOcx.ShowModelBar(isShow);
isShow = !isShow;
}

4、隐藏模型栏效果如下:

八、状态栏

显示或隐藏接口:

COM接口

_DMxDrawX::ShowStatusBar

例如隐藏状态栏,JS:

<param name="ShowStatusBar" value="0">

1、显示进度条

COM接口:

设置进度条显示范围

_DMxDrawX::SetStatusBarProgressMeter

设置进度条显示位置

_DMxDrawX::SetStatusBarProgressMeterPos

隐藏进度条

DMxDrawX::RestoreStatusBar

2、状态栏上按钮调用

参考“ 梦想控件20-常用系统变量说明.doc ”文档,状态栏上的捕捉,正交等功能如何在自己的程序中设置。

3、坐标设置事件

(1)状态上的坐标被修改后,会触发一个通知事件,可以帮助用户写自定义状态栏。

COM接口

DMxDrawXEvents::SetTipCoord

(2)_DMxDrawXEvents::SetTipCoord方法

接口:

static void SetTipCoord(CString sCoordTxt, double dX, double dY, double dZ);

参数:

参数

说明

CString sCoordTxt

状态条显示内容

double dX

状态条显示X坐标

double dY

状态条显示Y坐标

double dZ

状态条显示Z坐标

4、进度条事件

进度条显示时,会触发设置进度条事件。

COM接口

DMxDrawXEvents::SetProgressBar

5、状态栏的梦想Logo

(1)控件试用版本程序,总是会显示该Logo,正式程序就会自动去掉该Logo。

(2)CAD控件界面状态栏的显示或隐藏,js代码实现如下:

//隐藏/显示状态栏
function HideStatusBar()
{

mxOcx.ShowStatusBar(isShow);
isShow = !isShow;
}

(3)隐藏状态栏效果如下:

九、浏览模式切换

启用接口:

COM接口

DMxDrawX::BrowseMode

例如隐藏坐标图标,JS:

<param name="IsBrowner" value="1">

CAD控件界面浏览模式切换,js代码实现如下:

	//模式切换
	var isBrowner = false;
	function BrownerMode() {
	isBrowner = !isBrowner;
	mxOcx.BrowseMode = isBrowner;
	mxOcx.ShowMenuBar = !isBrowner;
	mxOcx.ShowPropertyWindow = !isBrowner;
	}

浏览模式切换效果如下:

十一、视区

1、设置视区背景色

COM接口

_DMxDrawX::ViewColor

JS把背景色变成红色= 123,绿色=55,蓝色=78,颜色值是由(0xFF FF FF)6位的16进制数据组成,分别代表示(0x红,绿,蓝),比如要设置颜色: 红色= 123,绿色=55,蓝色=78的颜色。

123= 0x7B, 55=0x37, 78=0x4E

也就是0x7B 37 4E, 0x7B374E = 8075086。所以设置ViewColor =8075086:

<param name="ViewColor" value="8075086">

2、设置视区背景色为渐变色

COM接口

IniSet="ViewGradientColor=RGB;标记"

设置背景为渐变色填充,RGB是填充的渐变色,标记为 0,不使用渐变填充颜色,1使用渐变填充颜色。

axMxDrawX1.Iniset = "ViewGradientColor=" + "255" + ";1";
axMxDrawX1.ViewColor = Color.FromArgb(10, 22, 200, 0);

3、设置水印背景

COM接口

_DMxDrawX::Watermark

例如:设置文件名:d:\\mxcad.jpg,透明度为70,居中显示,x方向距离为5,y方向距离为5,如下:

ocx.Watermark = "d:\\mxcad.jpg,70,5,5,1"

JS例子:

var iShowWatermark = false;
function ShowWatermark() {
iShowWatermark = !iShowWatermark;
if (iShowWatermark) {
mxOcx.Watermark = mxOcx.GetOcxAppPath() + "\\Watermark.png" + ",20,5,5,1";
mxOcx.ViewColor = 16777215; // 背景色改成白色
}
else {
mxOcx.Watermark = "";
mxOcx.ViewColor = 0; // 背景色改成白色
}
}

4、绘光栅图到背景

COM接口

_DMxDrawX::DrawImageToBackground

参考说明如下:

BSTR sFileName

光栅图文件.DWGBMPJPG文件路径

LONG lLeftUpX

栅图显示的在控件视区显示的左上角位置X,视区窗口坐标

LONG lLeftUpY

栅图显示的在控件视区显示的左上角位置Y,视区窗口坐标

5、把DWG文件当着背景导入

COM接口

_DMxDrawX::OpenBackgroundFile

把一个dwg文件,或者图像文件当着一个背景导入,参考说明如下:

VARIANT_BOOL isGreyness

是否灰显示

LONG lightColor

背景灰度显示颜色

VARIANT_BOOL isZoomE  

是否自动把调用ZoomE操作

VARIANT_BOOL isUpDisplay

是否自动调用更新显示

sFile

DWGBMPJPG文件路径

6、对象夹点显示颜色

COM接口

IniSet="GripColor=RGB"

例如: JS,把夹点颜色改成 红色= 123,绿色=55,蓝色=78,设置GripColor=8075086:

<param name="IniSet" value="GripColor=8075086">

十一、光标控制

设置光标线显示长度:

COM接口

_DMxDrawX::CursorLong

_DMxDrawX::SetCursorCrossLong

设置为0表示无限长:CursorLong= 0,默认值为30。

设置光标矩形框大小:

COM接口

_DMxDrawX::CursorWidth

_DMxDrawX::SetCursorPickRect

默认值为6 ,单位是屏幕像素大小。

1、自定义设置光标

COM接口,临时需要改变光标,用如下函数完成:

保存光标状态,与RestoreCursor配合使用

_DMxDrawX::SaveCursor

设置光标,从cur光标文件加载

_DMxDrawX::SetCursor

恢复光标

_DMxDrawX::RestoreCursor

2、设置默认缺省时光标

COM接口

_DMxDrawX::UseArrowCursor

(1)设置默认使用箭头光标,不要使用缺省的十字光标:

<param name="UseArrowCursor" value="1">

(2)从文件加载一个默认光标,CAD控件默认状态下将使用这个光标,路径是个相对 MxDrawX.ocx 所在目录下的文件。

Iniset属性,DEFAULTCURSOR=MyCursor.cur。

例如JS:

<param name="Iniset" value="DEFAULTCURSOR=MyCursor.cur">

3、光标位置

得到位置,文档坐标,是个MxDrawPoint对象。

COM接口

_DMxDrawX::GetInputCursorPos

设置光标位置,文档坐标。

COM接口

_DMxDrawX::SetInputCursorPos

十二、坐标图标

显示或隐藏接口:

COM接口

DMxDrawX::IsDrawCoord

例如隐藏坐标图标,JS:

<param name="IsDrawCoord" value="0">

隐藏前:

隐藏后:

十三、动态提示

1、CAD控件具有鼠标停在一个对象上,然后自动弹出一个提示信息窗口的功能,效果如下:

2、参考例子:samples\ie\iedemoTest.htm,点击例子上边的设置超连接按钮,然后把鼠标停在对象上两秒,就能看到效果了。自动提示事件,用户响应该事件,返回需要显示的字符串,返回的字符串支持Html格式化。

COM接口

_DMxDrawXEvents::InputPointToolTipEvent

设置提示时间

_DMxDrawX::SetToolTipInitialTime

设置ToolTip自动提示隐藏时间

_DMxDrawX::SetToolTipPopTime

3、JS例子说明:

(1)给选中实体设置超链接

	//新建一个COM组件对象
	var selEnt = mxOcx.NewComObject("IMxDrawUiPrEntity");
	selEnt.message = "选择要设置的对象";
	if (selEnt.go() != 1)
	return;
	//返回用户选择的实体
	var ent = selEnt.Entity();
	if (ent == null)
	return;
	//设置超链接(用户可以设置所需链接)
	ent.Hyperlinks = "www.cdtong.net";
	//设置动态提示弹出时间,默认为1000.0毫秒
	mxOcx.DynToolTipTime = 100;

(2) 增加InputPointToolTipEvent事件响应函数:

document.getElementById("MxDrawXCtrl").ImpInputPointToolTipFun = DoInputPointToolTipFun;

(3)  在事件中返回需要提示的字符串:

	function DoInputPointToolTipFun(ent) {
	var mxOcx = document.getElementById("MxDrawXCtrl");
	var sHyperlinks = ent.Hyperlinks;
	if(sHyperlinks.length != 0)
	{
	var sClassName = ent.ObjectName;
	
	var tip = "<b><ct=0x0000FF><al_c>"+sClassName+
	"</b><br><ct=0x00AA00><hr=100%></ct><br><a=\"link\">" + sHyperlinks + "</a>";
	
	mxOcx.SetEventRetString(tip);
	}
	ent = null;
	CollectGarbage();
	}

 

 

 

 

 

 

 

 

 

 

1、总体介绍 CADViewer+图纸浏览控件是一个实现对AutoCAD R14-2016图纸(DWG/DWF/DXF)安全浏览的ActiveX产品。CADViewer+提供平移\缩放\全图\测距\测面积\图层显示控制等常用功能,并支持VC++、Dephi、Java、VB、.Net、Php等开发语言。 2、功能介绍 安装本软件后,可以通过各类语言来调用CADViewer+控件控件具备如下功能: 1)开窗放大功能 产品提供开窗放大功能,使用者可以根据需要对图纸进行局部放大充满窗口 2) 放大、缩小功能 使用者可以根据需要对图纸进行放大、缩小浏览,此处支持鼠标滑轮滚动对图纸进行放大、缩小的调整。 3) 全图 系统提供全图显示功能。 4)平移 此处有三种方式可使用此功能:1可以对图纸进行多方向拖动。2)单击鼠标右键,选项中也由此功能键,可点击使用此功能。 5) 捕捉设置 本软件提供捕捉设置功能,方便使用者在测量距离和面积时进行点的捕捉。使用者单击鼠标右键,选择“捕捉设置”进入捕捉设置界面,即可对其进行设置。 6) 测量功能 本软件提供测量距离、测量面积两种测量功能方便用户使用。 测量距离功能 点击测量功能按钮后,使用者选定两点后即可测出两点间距离。 测量面积功能 使用者点击测量面积按钮后,单击鼠标左键进行区域选中(不包含曲线选中),选中完成后单击鼠标右键即显示所选区域的周长和面积。 7) 图层管理 本软件提供图层管理功能,使用者单击鼠标右键或者点击图层管理的图标,选择“图层管理”进入图层管理界面,该界面可进行“显示”“冻结”“锁定”的更改,单击相应图标即可进行设置。 8) 视觉样式显示模型 视觉样式是一组设置,用来控制视口中边和着色的显示。更改视觉样式的特性,而不是使用命令和设置系统变量。一旦应用了视觉样式或更改了其设置,就可以在视口中查看效果。 二维线框 显示用直线和曲线表示边界的对象。光栅和 OLE 对象、线型和线宽均可见。 三维线框 显示用直线和曲线表示边界的对象。 三维隐藏 显示用三维线框表示的对象并隐藏表示后向面的直线。 三维真实 着色多边形平面间的对象,并使对象的边平滑化。将显示已附着到对象的材质。 三维概念 着色多边形平面间的对象,并使对象的边平滑化。着色使用古氏面样式,一种冷色和暖色之间的转场而不是从深色到浅色的转场。效果缺乏真实感,但是可以更方便地查看模型的细节。 3、、产品特色 1)支持多种主流编程语言 产品支持在VC++、VB、.Net和html中调用控件。 2)提供可靠的安全性 用户只可在线浏览图纸文件,无法进行拷贝、另存和打印等操作。 3)无需安装AutoCAD即可实现在线浏览图纸文件 采用自主图纸解析引擎,脱离AutoCAD,即可浏览图纸文件。 4)提供了方便的浏览辅助工具 为用户提供了一系列的浏览辅助工具,方便用户进行浏览,其中包括:移动、放大、缩小、充满显示、开窗放大,测量距离和面积等。 5)支持多版本CAD图纸文件 支持浏览R14-2015版本的图纸文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值