明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: mxdwg

梦想mxdraw浏览,编辑控件

  [复制链接]
 楼主| 发表于 2015-8-10 10:45 | 显示全部楼层



控件2015.08.07最新更新

发布时间:2015-08-09 16:32:43


下载地址:
http://www.mxdraw.com/index.php? ... ;catid=41&id=46

1. 增加图块与曲线求交点功能,并修正PL线在特别数据情况下不能偏移,或求交点的问题.
  

2. 完善图片插入命令,插入过程可以指定缩放比较,宽高。并在界面上可以动态预览.
  

3. 增加在图上查找文字,并定位的功能


4. 完善多行文字,支持宽度属性,自动换行功能


5. 修正图块中实本的显示顺序问题


6. 修正文字中,上下标识文字的正确显示


7. 增加COM接口,用来给dwg图纸写用户自定义数据. 代码如下:
     
        MxDrawDatabase database = (MxDrawDatabase)axMxDrawX1.GetDatabase();
         MxDrawResbuf param = new MxDrawResbuf();
         param.AddString("MyTitleVal");

        // 设置dwg文件说明信息标题为"MyTitleVal"
         database.SetProp("setTitle", param);

        // 取dwg文件说明信息标题.
         MxDrawResbuf ret = database.GetProp("getTitle");
         MessageBox.Show(ret.AtString(0) );
  

8. 增加“梦想控件20-常用系统变量说明.doc”文档


9. 修正椭圆弧由距离计算点不成功问题


10. 返回最近执行命令函数
static BOOL Mx_GetRecentCommands(std::vector& vecCommands);
 楼主| 发表于 2015-8-26 10:32 | 显示全部楼层

更新时间:2015 年08 月24 日
界面控制说明
成都梦想凯德科技有限公司
WEB:HTTP://WWW.MXDRAW.COM/
2
目录
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
// &#8943;
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);
//&#8943;
}
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;
}
 楼主| 发表于 2015-8-31 15:23 | 显示全部楼层
梦想绘图控件开发教程
M X D R A W 梦想绘图控件教程V 5 . 2
1. 在易语言中引入控件:···················································································3
2. 调用控件函数 ······························································································6
1.1、 打开DWG 文件 ····································································································· 6
1.2、 绘制圆,直线简单例程: ·························································································· 8
1.3、 调用控件自定义函数,设置当前颜色代码 ····································································· 9
M X D R A W 梦想绘图控件教程V 5 . 2
1. 在易语言中引入控件:
安装好梦想控件后,运行安装目录下的RegMxDrawX.bat注册控件:
运行易语言安装目录下的[tools]文件夹中的[packcom.exe]文件,如下图:
输入“MxDraw”搜索,选中红色框组件后点击“下一步”
M X D R A W 梦想绘图控件教程V 5 . 2
点击[保存]按钮。
注意:保存npk支持库文件,如果您在网上发布梦想控件开发的易语言源码,一定要带上支持
库文件,没有支持库npk文件源码打开时控件将载入失败,导致不能调试运行。
选择[是],梦想控件将可以被易语言载入使用。
M X D R A W 梦想绘图控件教程V 5 . 2
打开易语言5.31,运行菜单[工具]=> [支持库配置],如下图
勾选[MxDrawXLib 1.0版],点击[确认]
M X D R A W 梦想绘图控件教程V 5 . 2
新建一个易程序,载入梦想绘图控件
2. 调用控件函数
1.1、 打开DWG 文件
在界面上放个按钮,在按钮点击事件中,执行一个用户自定义命令,代码如下:
MxDrawX1.DoCommand (1)
M X D R A W 梦想绘图控件教程V 5 . 2
抓图:
该代码,开始执行控件的一个用户自定义命令,命令的id为1,这个id值用户可以随便取值,
它是用来标识该命令,多个命令之间,id值不能重复。在随后,响应控件的命令执行事件,在该事
件中,打开dwg文件。
增加控件的命令执行事件,如下图:
前面的DoCommand的调用后,程序将会跳转到这里执行,控件要求所有与用户交互的操作,都
必须放在命令事件中。
在事件函数,执行打开DWG文件代码:
MxDrawX1.OpenDwgFile (“c:\\1.dwg”)
如下图:
M X D R A W 梦想绘图控件教程V 5 . 2
最终运行效果为:
1.2、 绘制圆,直线简单例程:
如图:
M X D R A W 梦想绘图控件教程V 5 . 2
画圆、画线按钮事件代码如下
1.3、 调用控件自定义函数,设置当前颜色代码
 楼主| 发表于 2015-9-23 14:26 | 显示全部楼层
mxdwg 发表于 2015-8-31 15:23
梦想绘图控件开发教程
M X D R A W 梦想绘图控件教程V 5 . 2
1. 在易语言中引入控件:········· ...

梦想CAD控件2015.09.20 iOS开发包下载

发布时间:2015-09-20 10:00:25

下载地址:

http://www.mxdraw.com/index.php? ... ;catid=41&id=49


1. 浏览dwg文件,支持所有版本 dwg文件


2. 参数化绘图


3. 图面信息提取


4. 动态拖放画图


例程界面抓图如下:

\

\
 楼主| 发表于 2015-11-19 15:18 | 显示全部楼层
控件2015.11.16最新更新
发布时间:2015-11-16 15:21:23
下载地址:
http://www.mxdraw.com


1. Solid支持半透明填充
例如:
C#中设置填充的透明度
     MxDrawResbuf tran = new MxDrawResbuf();
     tran.AddLong(150);
     hatch.SetProp("transparency", tran);

2. 标注对象修改后,undo不会更新问题

3. PL线打断后,宽度丢失问题

4. 修改夹点编辑的时候,不能捕捉自身

5. 正交模式打开时候,夹点移动没有正交效果

6. pline绘制增加一个回退的关键字
发表于 2015-12-2 16:35 | 显示全部楼层
国产良心软件,已购买@
 楼主| 发表于 2016-4-25 17:12 | 显示全部楼层
控件2016.4.13最新更新
发布时间:2016-04-13 10:41:23
下载地址:
http://www.mxdraw.com/download/MxDraw5.2(20160413)TryVersion.exe
  

或华军下载:http://www.onlinedown.net/soft/100760.htm


1,修正得组里面的实体,把删除实体也返回的错误

2,修正代理实体改不了颜色问题。

3,修正捕捉块插入点,有时会跑到很远的位置问题。

4.MxDrawChange类增加ToBlockReference函数

5.增加MxDraw::DrawToJpgBase64,Mx_DrawToJpgBase64函数,把图纸上的内容保存为Base64字符编码的jpg图片

6.增加Mx_ClearAllHighlight函数,清除图上的所有高亮实体

7.修改缩放实体命令,在动态输入打开后,不能输入比例
发表于 2019-3-13 13:57 | 显示全部楼层
咱们 这个东西有视频教程吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-27 10:49 , Processed in 0.380664 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表