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

更新时间:2015 年08 月24 日

界面控制说明

目录

1.1 说明: ......................................................................................................................................... 4

1.2 菜单栏 ......................................................................................................................................... 4

1.2.1 显示或隐藏接口 ............................................................................................................. 4

1.2.2 菜单栏文件 .................................................................................................................... 5

1.2.3 从指定菜单文件加载 ..................................................................................................... 6

1.2.4 禁用或启用菜单项 ......................................................................................................... 6

1.2.5 显示或隐藏菜单项 ......................................................................................................... 7

1.2.6 完整例子说明................................................................................................................. 7

1.2.7 右键弹出菜单................................................................................................................. 8

1.3 工具栏 ......................................................................................................................................... 9

1.3.1 显示或隐藏接口 ............................................................................................................. 9

1.3.2 显示或隐藏工具条上某个按钮 .................................................................................... 10

1.3.3 禁用工具条上某个按钮................................................................................................ 10

1.3.4 工具条文件 .................................................................................................................. 10

1.3.5 从指定文件加载 ........................................................................................................... 12

1.3.6 显示加载工具条文件 ................................................................................................... 13

1.3.7 完整例子说明............................................................................................................... 14

1.4 标尺栏 ....................................................................................................................................... 15

1.5 属性栏 ....................................................................................................................................... 15

1.6 命令栏 ....................................................................................................................................... 16

1.7 模型栏 ....................................................................................................................................... 17

1.8 状态栏 ....................................................................................................................................... 17

1.8.1 显示进度条 .................................................................................................................. 17

1.8.2 状态栏上按钮调用 ....................................................................................................... 17

1.8.3 坐标设置事件............................................................................................................... 18

1.8.4 进度条事件 .................................................................................................................. 18

1.8.5 状态栏的梦想Logo ...................................................................................................... 18

1.9 视区 ........................................................................................................................................... 18

1.9.1 设置视区背景色 ........................................................................................................... 18

1.9.2 设置视区背景色为渐变色 ............................................................................................ 19

1.9.3 设置水印背景............................................................................................................... 19

1.9.4 绘光栅图到背景. .......................................................................................................... 20

1.9.5 把DWG 文件当着背景导入 ........................................................................................ 21

1.9.6 对象夹点显示颜色 ....................................................................................................... 22

1.10 光标控制 ............................................................................................................................... 22

1.10.1 自定义设置光标 ........................................................................................................... 23

1.10.2 设置默认缺省时光标 ................................................................................................... 23

1.10.3 光标位置 ...................................................................................................................... 24

1.11 坐标图标 ................................................................................................................................... 24

1.12 浏览模式 ............................................................................................................................... 24

M X D R A W 梦想绘图控件教程V 5 . 2

3

1.13 动态提示 ............................................................................................................................... 25

M X D R A W 梦想绘图控件教程V 5 . 2

4

1.1 说明:

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

1.2 菜单栏

1.2.1 显示或隐藏接口

C++接口:MxDraw::ShowMenuBar

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

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

M X D R A W 梦想绘图控件教程V 5 . 2

5

1.2.2 菜单栏文件

控件MxDraw52.dll所在目录下,所有的mnu文件,都是菜单定义文件,它是文本文件,用记事

本打开编辑,格式如下:

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

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

文件类型字符串 资源文件名

注:后面菜单的图

标默认从该dll中

加载

图标的透明颜色 位置,可以是:

top,left,bottom,right

菜单名 是否

可以

浮动,

Y \N

"MxDrawMenuBarFile" "MxDraw.dll" (214 211 206) "top" "主菜单" "Y"

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

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

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

后面每列的内容如下:

命令名称 点击执行的命令

C++使用acedRegCmds->addCommand注

册命令

其它语言使用

DMxDrawX::RegistUserCustomCommand

注册命令

图标索引字符串

资源文件名

1. 为空取默认资源文件名

该名称,需要去掉控件版本号如:

MxDraw52.dll写成MxDraw.dll,控件会根据

具体情况加上这个版本号

2.资源文件如是local:开头,表示是一个本

地bmp文件,如:取mytoolbar.bmp做工具按钮

图标:

local:mytoolbar.bmp

3.资源文件如是web:开头,表示是一个网络

服务器上的bmp文件,如:取mytoolbar.bmp

做工具按钮图标:

web:mytoolbar.bmp

"新建(&N)" Mx_New "IDB_NEW_BITMAP" ""

继续上边

命令提示字符串 "命令ID"

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

令执行事件中响应菜单点击事件: ImplementCommandEvent

ID类型

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

"" "1" ""

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

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

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

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

M X D R A W 梦想绘图控件教程V 5 . 2

6

1.2.3 从指定菜单文件加载

C++接口:

MXDRAWOCXHANDLE MxDraw::CreateMxDraw 第五个参数表示菜单加载文件

COM接口:

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

帮助如下图:

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

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

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

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

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

C++接口:

MxDraw::ReLoadMenu

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

MxDrawXCustomFunction::Mx_ReLoadMenu

C#代码,如下调用:

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

1.2.4 禁用或启用菜单项

C++接口函数:

MxDraw::EnableMenuBarControl

M X D R A W 梦想绘图控件教程V 5 . 2

7

1.2.5 显示或隐藏菜单项

C++接口:MxDraw:: HideMenuBarControl

COM 接口:_DMxDrawX::HideMenuBarControl

例如:

mxocx.HideToolBarControl(true,_T("新建(&N) , 打开(&O));

1.2.6 完整例子说明

在B/S模式下,一步一步的说一下,如何用户自定义菜单,并响应点击事件。

详细例子可以参考samples\AspNet\AspNet.sln

1) 新建菜单文件

新一个文本文件: mxcad.mnu,内容如下:

定一个菜单按钮,按钮名为MyMenuButtonName,图标从服务器上加载,图标名为mytoolbar.bmp,

按钮点击执行命令,命令id为99

"MxDrawMenuBarFile" "MxDraw.dll" (214 211 206) "top" "主菜单" "Y"

"POPMENUS" "文件(&F)"

"MyMenuButtonName(&N)" "" "" "web:mytoolbar.bmp" "" "99"

"POPMENUE"

2) 把文件上传到服务器

把mxcad.mnu, mytoolbar.bmp文件放到服务器上,并放在同一个目录下,保证能直接从

ie中访问。

3) Js程序里引用菜单

M X D R A W 梦想绘图控件教程V 5 . 2

8

菜单文件放在当前网页目录下

<param name="Iniset" value="MenuFile=./mxcad.mnu">

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

function DoCommandEventFunc(iCmd)

{

if (iCmd == 99) {

//该函数在mxcustom.js中

alert("菜单按钮点击");

}

}

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

1.2.7 右键弹出菜单

控件支持鼠标右键弹出菜单,菜单的文件格式和前面的主菜单文件格式一样。

详细参考例子,samples\ie\iedemoTest.htm

弹出函数C++接口:

MxDraw::TrackPopupMenu

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) {

M X D R A W 梦想绘图控件教程V 5 . 2

9

// 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.3 工具栏

1.3.1 显示或隐藏接口

显示或隐藏所有工具条

C++接口:MxDraw::ShowToolBars

COM 接口:ocx的属性, ShowToolBars,例如JS语言,隐藏工具条:

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

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

C++接口:MxDraw::ShowToolBar

M X D R A W 梦想绘图控件教程V 5 . 2

10

COM 接口:_DMxDrawX::ShowToolBar

1.3.2 显示或隐藏工具条上某个按钮

C++接口:MxDraw::HideToolBarControl

例如:VC代码,隐藏绘图工具栏上的绘线和绘矩形框按钮。

MxDraw::HideToolBarControl(m_hDrawOcx,_T("绘图工具"),_T("绘线,绘矩形框"));

COM 接口:_DMxDrawX::HideToolBarControl

例如:

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

1.3.3 禁用工具条上某个按钮

C++接口:MxDraw::EnableToolBarControl

例如禁用打印按钮:

MxDraw::EnableToolBarControl(m_hDrawOcx,_T("打印图形"),FALSE);

COM 接口:DMxDrawX::EnableToolBarButton

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

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

1.3.4 工具条文件

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

M X D R A W 梦想绘图控件教程V 5 . 2

11

条, 如下:

文件名 说明

MxDraw-ToolBar.mxt 常用工具条

MxDraw-ToolBar-Draw.mxt 绘图工具条

MxDraw-ToolBar-DrawParam.mxt 特性工具条

MxDraw-ToolBar-Edit.mxt 编辑工具条

MxDraw-ToolBar-ET.mxt 扩展工具条

把不需要的工具条文件删除,控件加载时就不会显示该工具条

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

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

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

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

文件中后面每行代表一个工具条按钮,

每列的内容如下:

如:("打开网上dwg文件" "打开网上dwg文件" "_OpenWebDwg" "IDB_OPENWEBDWG_BITMAP" ""

"" "" "Y")

第几列 例程中的内容 说明

1 "打开网上dwg文件" 命令名称

2 "打开网上dwg文件" 命令提示字符串

3 _OpenWebDwg 命令名

注: C++使用McEdCommandStack :: addCommand增加,例

如下:

acedRegCmds()->addCommand(_T("SysCmd"),

_T("OpenDwg"), _T("OpenDwg"), 1, OpenDwg);

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

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

5 "" ID类型

注:控件内部使用,用户填空串

6 "" 资源文件名

1. 为空取默认资源文件名

该名称,需要去掉控件版本号如:

MxDraw52.dll写成MxDraw.dll,控件会根据具体情况加上这

M X D R A W 梦想绘图控件教程V 5 . 2

12

个版本号

2.资源文件如是local:开头,表示是一个本地bmp文件,如:

取mytoolbar.bmp做工具按钮图标:

local:mytoolbar.bmp

3..资源文件如是web:开头,表示是一个网络服务器上的

bmp文件,如:取mytoolbar.bmp做工具按钮图标:

web:mytoolbar.bmp

7 "" "命令ID"

注:

定菜单点击后响应的命令事件id,如不为空,可以在控件的

命令执行事件中响应菜单点击事件:

ImplementCommandEvent

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

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

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

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

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

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

1.3.5 从指定文件加载

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

C++接口:

MXDRAWOCXHANDLE MxDraw::CreateMxDraw 第四个参数指定工具条加载文件

COM接口:

ToolBarFiles 属性,它支持从服务器上加载工具文件,多个工具条文件用逗号隔开

帮助如下图:

M X D R A W 梦想绘图控件教程V 5 . 2

13

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

<param name=" ToolBarFiles"

value=" ./My-MxDraw-ToolBar.txt,MxDraw-ToolBar-DrawParam.mxt,MxDraw-ToolBar-Draw.mxt,MxDraw-ToolB

ar-Edit.mxt">

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

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

1.3.6 显示加载工具条文件

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

C++接口:

MxDraw::LoadToolBar

例如:

void CTestDlg::OnBnClickedLoadtoolbarButton1()

{

CFileDialog openDlg(TRUE,_T("mxt"),NULL,

OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,

_T("mxt(*.mxt) | *.mxt||"),AfxGetApp()->GetMainWnd());

if(openDlg.DoModal() == IDOK)

{

CString sToolBarFilePath = openDlg.GetPathName();

M X D R A W 梦想绘图控件教程V 5 . 2

14

MxDraw::LoadToolBar(m_hDrawOcx,sToolBarFilePath);

}

}

COM接口:

_DMxDrawX::LoadToolBar

帮助文件抓图:

1.3.7 完整例子说明

在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程序里引用工具条

M X D R A W 梦想绘图控件教程V 5 . 2

15

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

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

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

function DoCommandEventFunc(iCmd)

{

if (iCmd == 100) {

//该函数在mxcustom.js中

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

}

}

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

1.4 标尺栏

显示或隐藏接口:

C++: MxDraw::ShowRulerWindow

COM接口: DMxDrawX::ShowRulerWindow

例如隐藏标尺栏,JS:

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

1.5 属性栏

显示或隐藏接口:

C++: MxDraw::ShowPropertyEditWindow

COM接口: DMxDrawX::ShowPropertyWindow

例如显示属性栏,JS:

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

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

C++: MxDraw::EnablePropertyEditWindow

例如,在App::InitInstance中启用

BOOL CTestDlgApp::InitInstance()

{

M X D R A W 梦想绘图控件教程V 5 . 2

16

// ?

MxDraw::InitMxDraw(true,_T("MxDraw-Edit.ini"));

MxDraw::SetTheme(MxDraw::themeWhidbey);

MxDraw::EnableUndo(true);

MxDraw::EnableOleShow(true);

MxDraw::EnableViewModifyNotify(true);

MxDraw::EnableDeskCommandWindow(true);

MxDraw::ShowCommandWindow(NULL,TRUE);

MxDraw::EnablePropertyEditWindow(true);

//?

}

COM: IniSet="EnablePropertyWindow=Y"

说明抓图:

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

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

1.6 命令栏

显示或隐藏接口:

C++: MxDraw::ShowCommandWindow

COM接口: _DMxDrawX::ShowCommandWindow

例如隐藏命令栏,JS:

M X D R A W 梦想绘图控件教程V 5 . 2

17

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

1.7 模型栏

显示或隐藏接口:

C++: MxDraw::ShowModelBar

COM接口: _DMxDrawX::ShowModelBar

例如隐藏模型栏,JS:

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

1.8 状态栏

显示或隐藏接口:

C++: MxDraw::ShowModelBar

COM接口: _DMxDrawX::ShowStatusBar

例如隐藏模型栏,JS:

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

1.8.1 显示进度条

COM接口:

设置进度条显示范围: _DMxDrawX::SetStatusBarProgressMeter

设置进度条显示位置: _DMxDrawX::SetStatusBarProgressMeterPos

隐藏进度条: DMxDrawX::RestoreStatusBar

C++接口

设置进度条显示范围: Mx::mcedSetStatusBarProgressMeter

设置进度条显示位置: Mx::mcedSetStatusBarProgressMeterPos

设置进度条走一步: Mx::mcedSetStatusBarProgressStep

隐藏进度条: Mx::mcedRestoreStatusBar

1.8.2 状态栏上按钮调用

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

程序中设置.

M X D R A W 梦想绘图控件教程V 5 . 2

18

1.8.3 坐标设置事件

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

COM接口: DMxDrawXEvents::SetTipCoord

帮助文档抓图:

1.8.4 进度条事件

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

COM接口: DMxDrawXEvents::SetProgressBar

1.8.5 状态栏的梦想Logo

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

1.9 视区

1.9.1 设置视区背景色

C++: MxDraw::SetViewColor

COM接口: _DMxDrawX::ViewColor

M X D R A W 梦想绘图控件教程V 5 . 2

19

例如: C#动态修改颜色.

axMxDrawX1.ViewColor = Color.FromArgb(255,255,66,0)

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

1.9.2 设置视区背景色为渐变色

COM: IniSet="ViewGradientColor=RGB;标记"

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

颜色。

C#如使用绿色渐变:

axMxDrawX1.Iniset = "ViewGradientColor=" + "255" + ";1";

axMxDrawX1.ViewColor = Color.FromArgb(10, 22, 200, 0);

C++: MxDraw::SetViewGradientColor

1.9.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; // 背景色改成白色

}

M X D R A W 梦想绘图控件教程V 5 . 2

20

}

C++: MxDraw::OpenBackgroundImageFile

参数说明如下:

// Summary:

// 把一个光栅图打开,做背景.

// Parameters:

// hOcx - 控件句柄

// luPt - 光栅图显示的在控件视区显示的左上角位置,视区窗口坐标。

//在居中显示时,luPt.x表示左右空白距离,luPt.y表示上下空白距离

// pszFile- DWG\BMP\JPG文件路径,支持http路径,文件件名为空时,清空背景文件

// iTransparen - 表示透明显示的,透明度,取值在 0~100,

// pos - 背景图片是否居中显示,还是左上角定位

// Returns:

// 成功能返回true

// -------------------------------------------------------------------------

static BOOL OpenBackgroundImageFile(IN MXDRAWOCXHANDLE hOcx,

IN CPoint luPt,IN LPCTSTR pszFile,IN int iTransparen = 50,

IN MxDraw::ImagePos pos = kAutoCenter,IN BOOL isAutoUpdisplay = TRUE);

1.9.4 绘光栅图到背景.

COM: _DMxDrawX::DrawImageToBackground

帮助文档抓图:

M X D R A W 梦想绘图控件教程V 5 . 2

21

1.9.5 把DWG 文件当着背景导入

C++接口: MxDraw::OpenBackgroundFile

COM接口:_DMxDrawX::OpenBackgroundFile

帮助文档抓图:

M X D R A W 梦想绘图控件教程V 5 . 2

22

1.9.6 对象夹点显示颜色

COM: IniSet="GripColor=RGB"

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

设置GripColor=8075086

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

C++接口:

MxDraw::SetGripColor

1.10 光标控制

设置光标线显示长度

COM: _DMxDrawX::CursorLong

_DMxDrawX::SetCursorCrossLong

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

C++接口:

M X D R A W 梦想绘图控件教程V 5 . 2

23

MxDraw::SetCursorCrossLong

光标矩形框大小

COM: _DMxDrawX::CursorWidth

_DMxDrawX::SetCursorPickRect

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

C++接口:

MxDraw::SetCursorPickRect

1.10.1 自定义设置光标

COM接口:

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

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

设置光标,从cur光标文件加载: _DMxDrawX::SetCursor

恢复光标: _DMxDrawX::RestoreCursor

C++接口,该函数有三个重载,从光标文件(cur)加载光标,从光标资源中加载,设置内置光标

MxDraw::SetCursor

得到光标函数,用于备份光标,在需要时恢复光标

MxDraw::GetCursor

1.10.2 设置默认缺省时光标

COM接口:

_DMxDrawX::UseArrowCursor

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

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

从文件加载一个默认光标,控件默认状态下将使用这个光标,路径是个相对MxDrawX.ocx所在

目录下的文件

Iniset属性,DEFAULTCURSOR=MyCursor.cur

例如JS:

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

C++接口:

MxDraw::SetDefaultCursor

void CMxDrawXCtrl::SetUseArrowCursor(VARIANT_BOOL newVal)

{

AFX_MANAGE_STATE(AfxGetStaticModuleState());

M X D R A W 梦想绘图控件教程V 5 . 2

24

m_UseArrowCursor = (newVal != VARIANT_FALSE);

if(m_UseArrowCursor)

{

MxDraw::SetDefaultCursor(::LoadCursor(NULL, IDC_ARROW),m_hDrawOcx);

}

else

{

MxDraw::SetDefaultCursor(NULL,m_hDrawOcx);

}

SetModifiedFlag();

}

1.10.3 光标位置

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

COM接口:_DMxDrawX::GetInputCursorPos

设置光标位置,文档坐标

_DMxDrawX::SetInputCursorPos

1.11 坐标图标

显示或隐藏接口:

C++: MxDraw::SetDrawCoord

COM接口: DMxDrawX::IsDrawCoord

例如隐藏坐标图标,JS:

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

1.12 浏览模式

浏览模式下,控件会自动加载控件程序目录下的ViewRes目录的工具条文件,并禁用夹点编辑,

和选择功能。

参考例子:samples\ie\IedemoBrowse.htm

启用接口:

C++: MxDraw::SetBrowner

COM接口: DMxDrawX::BrowseMode

例如隐藏坐标图标,JS:

M X D R A W 梦想绘图控件教程V 5 . 2

25

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

例如C++ COM:

void CTestVc2005Dlg::OnBnClickedBrownerButton()

{

// TODO: 在此添加控件通知处理程序代码

static BOOL isBrowner = TRUE;

m_ocx.SetBrowseMode(isBrowner);

m_ocx.SetShowMenuBar(!isBrowner);

m_ocx.SetShowCommandWindow(!isBrowner);

isBrowner = !isBrowner;

}

1.13 动态提示

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

参考例子:samples\ie\iedemoTest.htm,点击例子上边的设置超连接按钮,然后把鼠标停在对

象上两秒,就能看到效果了。

自动提示事件,用户响应该事件,返回需要显示的字符串,就行了。返回的字符串支持Html格

式化。

COM接口:

_DMxDrawXEvents::InputPointToolTipEvent

JS例子说明:

1) 增加InputPointToolTipEvent 事件响应函数

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

M X D R A W 梦想绘图控件教程V 5 . 2

26

2) 在事件中返回需要提示的字符串

function DoInputPointToolTipFun(ent) {

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

}

设置提示时间:

_DMxDrawX::SetToolTipInitialTime

设置ToolTip自动提示隐藏时间

_DMxDrawX::SetToolTipPopTime

C++接口:

McEdInputPointMonitor::MonitorInputPointToolTip

设置提示时间:

MxDraw::SetDynToolTipInitialTime

设置ToolTip自动提示隐藏时间

MxDraw::SetDynToolTipPopTime

帮助文档抓图:

M X D R A W 梦想绘图控件教程V 5 . 2

27

参考例子:MxDraw5.2\samples\Edit\Edit.sln,中InputPointMonitor.cpp文件;

代码如下:

Mcad::ErrorStatus CInputPointMonitor::MonitorInputPointToolTip(IN const McDbObjectIdArray& pickedEntities,

{

if(!pickedEntities.isEmpty())

{

AcDbObjectId entId = pickedEntities[0];

AcDbObjectPointer<AcDbEntity> spEnt(entId,AcDb::kForRead);

if(spEnt.openStatus() == Acad::eOk)

{

CString sClassName = spEnt->isA()->name();

AcDbHandle handle;

spEnt->getAcDbHandle(handle);

TCHAR szHandle[256];

handle.getIntoAsciiBuffer(szHandle);

CString sLayerName;

{

AcDbObjectPointer<AcDbLayerTableRecord>

spLayerTableRec(spEnt->layerId(),AcDb::kForRead);

if(spLayerTableRec.openStatus() == Acad::eOk)

M X D R A W 梦想绘图控件教程V 5 . 2

28

{

LPCTSTR pszLayerName = NULL;

spLayerTableRec->getName(pszLayerName);

sLayerName = pszLayerName;

}

}

sNewToolTipString.Format(_T("类名:%s,层名:%s,名

柄:%s"),sClassName,sLayerName,szHandle);

}

}

return Mcad::eOk;

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-07 17:41:10

CAD控件:界面控制说明和方法的相关文章

CAD控件,CAD插件使用教程:Android开发使用控件--开发环境的搭建

Android开发使用控件入门--环境搭建 2014-12-24 09:57     14人阅读     评论(0)     收藏         编辑     删除 CAD控件.CAD三维控件,手机控件 Android开发控件 软件名称(,梦,,想.CAD  ,控件) 1. 环境搭建: 3 1.1. 安装Eclipse 3 1.2. 下载JDK 3 1.3. 下载Android SDK 5 1.4. 给Eclipse 安装ADT插件  8 1.5. 运行Eclipse设置Android ADT

控件绘制的四种方法

OWNER?DRAW实现自绘按钮 一准备工作 在您决定开发 Windows 提供的常规免费自定义控件范围之外的控件之后,您必需确定自己的控件将有多少独到之处 - 在功能和外观两方面.例如,我们假定您正在创建一个类似于计速表的控件.由于公共控件库 (ComCtrl32.dll) 中没有类似的控件,您完全需要自己进行以下操作:编写所有控件功能需要的代码,进行绘制,默认终端用户的交互,以及控件与其父窗口之间需要的任意消息处理. (#add 两方面,公共控件库中没有类似的 完全重写;? 只想调整公共控件

vcl控件经常使用属性和方法

TTabControl属性 DisplayRect:仅仅定该控件客户区的一个矩形 HotTrack:设置当鼠标经过页标签时,它的字是否有变化.假设为True,是字会变成蓝色Images:为每一个页标签加入一个图片MultiLine:假设总页标签的长度大于该控件的宽度时,是否同意多行显示MultiSelect:是否同意多选页标签.该属性仅仅有当Style为tsFlatButtons或tsButtons时才有效OwnerDraw:是否同意自己绘画该控件RaggedRight:指定是否同意标签页伸展到

不拖控件的asp.net编程方法——第1回

以前写的asp.net程序基本上都用了webfrom的控件编写的,当然有个好处就是易入门.快速效率高,但感觉自己这了几个小系统,还是没学到什么东西,感觉心里没底,因为都是封装好的东西,拿来就用的,功能能实现,但原理性的东西不明白,所以遇到有些错误根本无从下手,虽然貌似很多公司开发都有控件,但作为学生个人觉得还是别用好,当然那些自定义控件的又另当别论. 本想深入研究asp.net MVC,但发现不懂的知识太多了,所以现在暂时先学HTML+ashx这样的形式,换成这种形式写还真不习惯,下面把我今天学

WPF编程,通过【帧】动态更改控件属性的一种方法。

原文:WPF编程,通过[帧]动态更改控件属性的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/details/87249998 WPF提供了一种基于帧的动画实现方式,由CompositionTarget类来完成. WPF会在每次界面刷新时调用该回调函数. CompositionTarget的刷新率与窗体保持一致,因此很难人工控制动画的快慢. ?1.前台 <Grid> <Grid.RowDefin

梦想CAD控件关于比较问题

全图比较 怎么比较两个CAD图纸文件修改前后的不同部分呢?在工程图纸设计中,我们更多情况下可能需要对同一张工程图的前后修改部分进行对比,以确定工程图纸的改动部分及追溯原因,本教程演示了几种常见的比较方法. 实现图纸比较功能,首先将两个控件放入网页中,js代码如下: <p align="center">   <object classid="clsid:74A777F8-7A8F-4e7c-AF47-7074828086E2" id="Mx

HighChats图表控件显示精度小数点的方法

相信大家对highchats这个图表控件并不陌生,最近在项目中用到它,但是某些字段需要显示为小数点,顾查找资料文档发现下面两个方式可以实现: 初始化时候添加如下两个参数 tooltip:{??? formatter:function(){??? return''+this.point.name+': '+Math.round(this.percentage)+' %';??? }},plotOptions:{?????? pie:{?????? allowPointSelect:true,???

dotConnect for Oracle控件免费下载及使用方法

原文来自龙博方案网http://www.fanganwang.com/product/1330转载请注明出处 dotConnect for Oracle完全基于ADO.NET方法,因此您完全可以采用标准ADO.NET数据提供的方法来使用它.是一款为Microsoft .NET Framework提供直接Oracle数据库连接的数据发生器控件. 具体功能: 无需Oracle客户端,采用直接模式提供数据库连接 100%代码管理 具有高表现性能 支持Oracle 10g, 9i, 8i 和 8.0,包

控件的安装和卸载方法

基本安装 1.对于单个控件,Componet-->install  component..-->PAS或DCU文件-->install;   2.对于带*.dpk文件的控件包,File-->Open(下拉列表框中选*.dpk)-->install即可:   3.对于带*.bpl文件的控件包,Install  Packages-->Add-->bpl文件名即可:   4.如果以上Install按钮为失效的话,试试Compile按钮:   5.是run  time