www.mxdraw.com
内容索引主面
前一个向上下一个
历史更新

更新记录: 

 

1. 2007.07.21 增加了对AcDb2dPolyline,AcDb3dPolyline,AcDbSolid的显示支持. 

 

2. 2007.7.28 

增加了对AcDbMText的显示支持. 

 

3. 2007.8.12更新 

增加把dwg文件保存为位图的功能函数 // dwg 文件存成位图 

 

4. 2007.8.26更新 

增加ARX编程接口,增加保存dwg文件函数,增加绘表例子. 

 

5. 2007.9.2更新 

A. 修正了块中圆弧显示错误 

B. 修正了文字显示位置不准确错误 

C. 修正椭圆弧显示错误 

D. 修正块的位置在UCS坐标时,显视位置不对问题 

 

6. 2007.9.9更新 

A. 修改块中实体颜色显示错误 

B. 修改线型随层时的问题 

 

7. 2007.12.16更新 

A. 增加插入图块的功能。 

B. 把控件做成ActiveX控件,并可在网页使用控件。 

C. 增加往实体读写扩展数据功能。 

 

8. 2008.03.23更新 

A. 增加dwg局部保存功能 

B. 增加动态绘制矩形框例程,并把结果保存到dwg文件中 

C. shx字体文件的精确显示,比如说字体中的圆弧显示,并丰富了控件中的字体文件,使用dwg中的字体显示更为准确.字体的镜向,颠倒显示. 

 

9. 2008.01.29更新 

A. 增加帮助文件 

B. 增加把dwg文件信息写到文本文件的ReadDwgToFile 例程 

C. 增加绘制一个简单图形,存在到dwg文件的WriteDwgFile例程 

D. 增加regen重新生成图形命令 

 

10. 2008.03.30更新 

A. 增加TrueType字体显示 

B. 增加AcDbTrace实体 

C. 修正前一个版对填充对象显示的内存泄漏问题. 

 

11. 2008.04.04更新 

A. 修正hatch图案显示错误 

B. 显示速度提高很多 

 

12. 2008.04.19更新 

A. 显示速度又进一步提高,与AutoCAD有得一比了 

 

13. 2008.05.04更新 

修正了前一个版本显示速度提高后的一些显示错误。 

 

14. 2008.05.28更新: 

 

A. 重写显示控制模块,使用显示时的视区变化也支持回退操作. 

B. 并修改了插入图块后,再undo后再插入图块会出错的问题 

C. 对起点与终点相同的圆弧计算出错的问题 

 

15. 2008.06.22更新 

 

A. 1.增加Spline线的支持 

B. 2.增加返回数据库的外包范围坐标 

C. 3.加入控件授权显示信息 

 

16. 2008.10.06更新 

A. 修正尺寸标注中的MTEXT文字显示不正确问题. 

B. 控件工具条改成从mxt文件加载,这样用户通过修改mxt文件可以自定义工具 

C. 修改VB使用控件,当使用命令时,这时退出程序,但VB程序一直没有退出,在进程管理器中能看到的问题 

D. 修正AcDb2dPolyline,AcDbPolyline的返回标高函数总是返回零的问题 

E. 修正控件在IE使用容易出错的问题,使用控件在IE使用更为稳定 

F. 修正控件控件在IE中打开,提示控件安全警告问题,具体情况如下: 

G. 增加打印功能 

H. 

I. 

J.下载 文件大小:68.01 KB,下载次数:0 下载 文件大小:85.87 KB,下载次数:0 

 

 

 

17. 2008.10.18更新 

A. 增加读取属性块中属性功能调用代码如下: 

AcDbObjectIterator* pAttribIter = spBlkRef->attributeIterator(); 

if(pAttribIter != NULL) 

acutPrintf(_T("\n 块的属性值为:")); 

for(;!pAttribIter->done();pAttribIter->step() ) 

// 打开块属性对象. 

AcDbObjectPointer<AcDbAttribute> spAttribute(pAttribIter->objectId(),AcDb::kForRead); 

acutPrintf(_T("\n %s"),spAttribute->textStringEx()); 

acutPrintf(_T("\n")); 

// 删除块属性递代器指针. 

delete pAttribIter; 

else 

acutPrintf(_T("\n 选择的不块不带属性")); 

B. 增加实体名柄类AcDbHandle,并可以把实体名柄与实体ID互相转换。 

C. 增加闪烁实体功能和停闪烁接口调用代码如下: 

// 闪烁实体. 

static bool TwinkeEnt(AcDbObjectId id); 

// 停闪东实体 

static bool StopTwinkeEnt(AcDbObjectId id); 

// 停闪止所有实体 

static bool StopAllTwinkeEnt(MXDRAWOCXHANDLE hOcx); 

D. 增加构建选择集函数acedSSGet,acedSSLength,acedSSFree,acedSSName,现在支持带过滤的X选 

 

struct resbuf* filter = acutBuildList(8,layer,RTDXF0, _T("LWPOLYLINE"),-4,_T("<OR"),62,0, 

62,1,62,256,-4,_T("OR>"),0); 

acutPrintf(_T("\n 选择实体:")); 

ads_name ss; 

int rc = acedSSGet(_T("X"), NULL, NULL,filter,ss); 

acutRelRb(filter); 

if(rc != RTNORM) 

AfxMessageBox(_T("没有发现满足要求的实体")); 

return; 

long len = 0; 

acedSSLength(ss,&len); 

CString sT; 

sT.Format(_T("发现%d个实体"),len); 

AfxMessageBox(sT); 

 

E. 增加图层的操作,关闭打开图层,可以参照samples\Edit.sln例程. 

F. 读取实体的扩展记录,和读取ReadNamedObjectsDictionary功能。 

 

// 把字典中所有的数据都输出 

AcDbDatabase *pDb = acdbHostApplicationServices()->workingDatabase(); 

AcDbObjectPointer<AcDbDictionary> spDict(pDb->namedObjectsDictionaryId(),AcDb::kForRead); 

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

PrintDictionary(spDict.object() ); 

 

G. 增加控件配制文件,在配制文件中可以指控件的背景色,是否显示工具条,是否显示命令窗口,字体文件搜索路径等。配制文件格式如下: 

 

// 控件的背景色 R G B 

("ViewBlkColor" (0 0 0)) 

// 是否显示命令行窗口 

("ShowCommandWindow" "Y") 

// 是否显示工具条 

("ShowToolBar" "Y") 

// 打开dwg文件时,是否读取扩展数据 

("ReadDwgExData" "Y") 

// 打开dwg文件时,是否读取扩展记录 

("ReadDwgExRecord" "Y") 

// 是否支持实体名柄操作 

("IsSupportEntHandle" "Y") 

// shx文件目录 

("ShxDir" "Shx") 

 

H. 增加对自定义实体的显示AcDbProxyEntity; 

I. 增加对属性定义文件的显示AcDbAttributeDefinition 

J. 增加W ,C方式构造选集, 

K. 增加实体选择变虚功能 

L. 增加acedGetPoint函数,可以从图上取一个点 

M. 增加在图上动态标注一个点的显示例程 

N. 增加设置光标位置函数 

O. 修正了一堆显示细节问题,控件显示更为精确。 

P. 比如有:文字间的空隔距离问题,MTEXT字体风格问题,填充对象有时填充不对问题,块中实体颜色显示等问题。下载 文件大小:92.83 KB,下载次数:0 

18. 2008.12.01更新 

A. 增加对公差显示的 

B. 修正了椭圆弧显示问题,等一堆显示问题. 

C. 增加带有形的复杂线型的显示. 

D. 增加在IE中同时打开两个控件的演示例程. 

E. 增加打开对话框中显示dwg预览的功能,并增加 

F. CBitmap* MxDraw::GetPreviewBmp(LPCTSTR pszFileName)函数得到dwg的预览位图 

G. 增加MxDraw::DoPreviewFileDialog函数,弹出带预览窗口的文件打开对话框 

H. 增加对DXF文件的显示支持. 

I. 修正控件尺寸在除VC的其它语言中改不了的问题。 

 

19. 2009.05.10更新 

A. 增加布局功能和相关接口,如:McDbLayout,McDbLayoutManager等类。 

B. 增加鼠标移动到实体上的动态提示功能和相关接口。如: 

// ARX的动态事件接口,虚函数。 

virtual Mcad::ErrorStatus McEdInputPointMonitor::MonitorInputPointToolTip(IN const McDbObjectIdArray& pickedEntities, 

IN const McGePoint3d& pickedPoint, 

IN CString& sNewToolTipString 

); 

 

C. ActiveX的动态提示事件函数 

CMxDrawOcxCtrl::FireMonitorInputPointToolTip(LONG lId, BSTR* pToolTip) 

D. 增加图层管理功能和相关接口。如: 

ActiveX的图层导出接口. 

E. SHORT CMxDrawOcxCtrl::GetLayerIdArray(VARIANT* pArrayId); 

 

SHORT CMxDrawOcxCtrl::GetLayerProp(LONG lId, BSTR* pszName, BSTR* pszLineTypeName, SHORT* pIsOff, SHORT* pIsLock, SHORT* pIsFrozen, BYTE* pR, BYTE* pG, BYTE* pB); 

SHORT CMxDrawOcxCtrl::SetLayerOff(LONG lId, SHORT iIsOff); 

 

F. 导出dwf功能和相关接口。如: 

BOOL MxDraw::ExprotDwf(MXDRAWOCXHANDLE hOcx, 

LPCTSTR pszDwfFilePath 

); 

G. 安装包中增加调试版lib文件和dll文件,方便控件使用者调试程序. 

H. 增加放大镜功能 

I. 修正一堆细节上的错误 

 

20. 2009.06.16更新 

A. 增加 dwf的导入. 

B. 增加样条线绘制, 

C. 增加曲线采样和离散曲线功能,可以对样条线,圆弧,圆,椭圆,椭圆弧进行离散 

D. 增加用户坐标系 

E. 增加视区旋转显示,和旋转打印。 

F. 增加鸟瞰功能 

G. 增加对位图,jgp的显示,增加AcDbRasterImage类。 

H. 增加绘图属性工具条,可以设置绘图的当前的颜色,当前图层,当前线型. 

I. 增加绘图工具条,主要用增加:绘线,矩形框,圆弧,圆,样条线,椭圆,椭圆弧,点,插入块,写文字,和插入图片按钮。 

J. 增加打开网上dwg图纸命令 

K. 增加关闭选择实体的图层命令 

L. 增加打开所有图层命令 

 

21. 2009.07.09更新 

A. 增加丰富的 COM 接口,这些接口类拟AutoCAD 的VBA接口,方便其它语言使用.例如,VB中使用控件交互绘制直线的代码: 

' 交互绘直线代码 

ElseIf iCommandId = 4 Then 

Dim curSpace2 As MxDrawXLib.MxDrawBlockTableRecord 

Set curSpace2 = app.WorkingDatabase.CurrentSpace 

Set mxUtility = New MxDrawXLib.MxDrawUtility 

Dim getPt1 As MxDrawXLib.MxDrawPoint 

Set getPt1 = mxUtility.GetPoint(, Chr(13) + Chr(10) + "点取第一点:") 

If (getPt1 Is Nothing) Then 

MsgBox "用户取消.." 

Exit Sub 

End If 

Dim getPt2 As MxDrawXLib.MxDrawPoint 

Set getPt2 = mxUtility.GetPoint(getPt1, Chr(13) + Chr(10) + "点取第二点:") 

If (getPt2 Is Nothing) Then 

MsgBox "用户取消.." 

Exit Sub 

End If 

Dim newLine As MxDrawXLib.MxDrawLine 

Set newLine = curSpace2.AddLine(getPt1, getPt2) 

newLine.colorIndex = mcRed 

 

End If 

B. 增加更加完善的帮助文档 

C. 增加删除实体功能 

D. 增加夹点编辑功能 

E. 增加编辑文字的演示例程代码 

 

22. 2009.08.20更新更新下载地址: 

A. 增加高质量绘图功能,该功能可以在控件配制文件中设置 

 

ini文件如果设置了如下值,高质量绘图功能就激活了: 

// 是否高质量进行绘图.激活该项,绘图质量提高,提显示速度下降。 

("HighQualityDraw" "Y") 

高质量绘图功能激活后,图面的直线绘图光滑,不存在锯齿,文字显示也很圆滑,画面质量非常高,但绘图性能会有所降低,如果图面实体较多,可以把该功能禁用。在配制文件如下修改: 

("HighQualityDraw" "N") 

 

B. mxdrawx.ocx接口更加完善,增加C#例程。 

 

如:交互绘直线: 

private void DrawLine() 

MxDrawUtility mxUtility = new MxDrawUtility(); 

MxDrawPoint point = (MxDrawPoint)(mxUtility.GetPoint(null, "点取第一点:") ); 

if (point == null) 

MessageBox.Show("用户取消.."); 

return; 

MxDrawPoint point2 = (MxDrawPoint)(mxUtility.GetPoint(point, "点取第二点:")); 

if (point2 == null) 

MessageBox.Show("用户取消.."); 

return; 

MxDrawApplication mxapp = new MxDrawApplication(); 

MxDrawDatabase mxdb = mxapp.WorkingDatabase(); 

MxDrawBlockTableRecord curSpace = mxdb.CurrentSpace(); 

MxDrawLine line = curSpace.AddLine(point, point2); 

line.colorIndex = MCAD_COLOR.mcRed; 

 

line.Close(); 

curSpace.Close(); 

 

C. 增加把指定的实体,缩放到视区中显示。 

D. 增加读取扩展数据 

// 读扩展数据 

private void ReadXData() 

MxDrawUtility mxUtility = new MxDrawUtility(); 

object getPt; 

MxDrawEntity ent = mxUtility.GetEntity(out getPt, "\n 选择读取扩展数据的实体:"); 

if (ent == null) 

return; 

MxDrawResbuf xData = ent.GetXData(""); 

if(xData.Count == 0) 

MessageBox.Show("没有扩展数据"); 

else 

// 向命令行窗口打印扩展数据。 

xData.PrintData(); 

 

E. 写扩展数据 

// 写扩展数据 

private void WriteXData() 

MxDrawUtility mxUtility = new MxDrawUtility(); 

object getPt; 

MxDrawEntity ent = mxUtility.GetEntity(out getPt, "\n 选择读取扩展数据的实体:"); 

if (ent == null) 

return; 

MxDrawResbuf xData = new MxDrawResbuf(); 

xData.AddString("TestApp",1001); 

xData.AddLong(77677,1071); 

ent.SetXData(xData); 

 

F. 遍历数据库的实体 

private void GetAllEntity() 

MxDrawApplication app = new MxDrawApplication(); 

MxDrawUtility mxUtility = new MxDrawUtility(); 

MxDrawBlockTableRecord blkRec = app.WorkingDatabase().CurrentSpace(); 

MxDrawBlockTableRecordIterator iter = blkRec.NewIterator(); 

if (iter == null) 

return; 

// 所有实体的id数组。 

List<Int32> aryId = new List<Int32>(); 

int iLineNum = 0; 

for(;!iter.Done() ;iter.Step(true,false) ) 

MxDrawEntity ent = iter.GetEntity(); 

if (ent == null) 

continue; 

aryId.Add(ent.ObjectID); 

if(ent is MxDrawLine) 

MxDrawLine line = (MxDrawLine)ent; 

iLineNum++; 

String sT; 

sT = "发现" + aryId.Count + "个实体,其中有"+iLineNum + "个直线"; 

MessageBox.Show(sT); 

 

G. 插入图块,增加注释。 

 

private void InsertNote() 

String sNoteText = "这是一个注释"; 

String sNote = "NoteBlockName"; 

// 让用点取一个注释插入点。 

MxDrawUtility mxUtility = new MxDrawUtility(); 

MxDrawPoint point = (MxDrawPoint)(mxUtility.GetPoint(null, "点取插入点 :")); 

if (point == null) 

MessageBox.Show("用户取消.."); 

return; 

// 插入注释。 

MxDrawApplication app = new MxDrawApplication(); 

 

MxDrawDatabase curDatabase = app.WorkingDatabase(); 

MxDrawBlockTable blkTable = curDatabase.GetBlockTable(); 

MxDrawBlockTableRecord curSpace = curDatabase.CurrentSpace(); 

MxDrawBlockTableRecord blkRec = blkTable.GetAt(sNote,true); 

if(blkRec == null) 

// blkRec == null 指名的块记录没有找到. 

// 插入一个新的块。 

String sBlkFilePath = axMxDrawX1.GetOcxAppPath() + "\\Blk\\TsgNote.dwg"; 

// 把dwg文件导入到当前数据库。 

axMxDrawX1.InsertBlock(sBlkFilePath, sNote); 

blkRec = blkTable.GetAt(sNote,true); 

if(blkRec != null) 

// 在当前空间中插入一个块引用。 

curSpace.InsertBlock(point,sNote,4.0,0.0); 

// 插入注释文本。 

point.y = point.y - 20.0; 

curSpace.AddText(point, sNoteText, 16, 0.0, MCAD_McHorizontalAlignment.mcHorizontalAlignmentCenter, 

MCAD_McVerticalAlignment.mcVerticalAlignmentTop); 

 

H. 烁闪实体和停止烁闪例程 

 

private void TwinkeEnt() 

MxDrawUtility mxUtility = new MxDrawUtility(); 

object getPt; 

MxDrawEntity ent = mxUtility.GetEntity(out getPt, "选择要闪烁的实体"); 

if (ent == null) 

return; 

Int32 id = ent.ObjectID; 

ent.Close(); 

axMxDrawX1.TwinkeEnt(id); 

// 停止闪实体 

private void StopTwinkeEnt() 

MxDrawUtility mxUtility = new MxDrawUtility(); 

object getPt; 

MxDrawEntity ent = mxUtility.GetEntity(out getPt, "选择要停止闪烁的实体"); 

if (ent == null) 

return; 

Int32 id = ent.ObjectID; 

ent.Close(); 

axMxDrawX1.StopTwinkeEnt(id); 

 

I. 增加控件的JavaScrip例程。 

23. 控件最新更新,2009.09.02 

A. 增加绘图捕捉功能. 

B. ARX接口中的曲线类几何计算函数更为完善 

 

24. 2009.09.21更新 

A. 增加不需要用控件打开,直接把dwg转成jpg文件的功能。 

B. 增加ARX的自定义实体的支持。可以参例程:sample\CustomEntity\CustomEntity.sln例程。并实现了联动编辑的效果。 

C. 修改了一些小问题。 

 

25. 2009.10.10更新 

D. 增加ASP例程。 

E. 增加控件在网页中使用时,把文件保存到服务器的功能。 

 

javascrit 程序绘直线代码; 

var MxDrawXCtrl_Obj; //控件对象 

function line() 

MxDrawXCtrl_Obj = document.all.item("MxDrawXCtrl"); 

var app ; 

app = new ActiveXObject("MxDrawX.MxDrawApplication"); 

 

var curSpace = app.WorkingDatabase().CurrentSpace(); 

var point1; 

var point2; 

point1 = new ActiveXObject("MxDrawX.MxDrawPoint"); 

point2 = new ActiveXObject("MxDrawX.MxDrawPoint"); 

point1.x = 10; 

point1.y = 10; 

point1.z = 0; 

point2.x = 200; 

point2.y = 4000; 

point2.z = 0; 

curSpace.AddLine(point1, point2); 

 

app.ZoomAll(); 

alert ("绘制直线成功"); 

}26. 2009.11.12更新下载地址 

 

A. 完善MxDrawX.ocx的接口和属性。控件的背影色,是否显示工具条,命令窗口等都可以直接在控件属性编辑器中修改 

B. 增加一组简单的绘图接口,可以非常方便进行参数化绘图,这些接口的详细调用例程可以参考samples\MxDrawXTestVB6.0下的例程。 

 

函数定义如下:复制内容到剪贴板 代码: 

int DrawLine(double dX1, double dY1, double dX2, double dY2) 

MxDrawXLib._DMxDrawX 的成员 

int DrawArc1(double dCenterX, double dCenterY, double dRadius, double dStartAng, double dEndAng) 

MxDrawXLib._DMxDrawX 的成员 

int DrawArc2(double dStartPointX, double dStartPointY, double dMidPointX, double dMidPointY, double dEndPointX, double dEndPointY) 

MxDrawXLib._DMxDrawX 的成员 

int DrawArc3(double dStartPointX, double dStartPointY, double dEndPointX, double dEndPointY, double dBulge) 

MxDrawXLib._DMxDrawX 的成员 

int DrawBlockReference(double dPosX, double dPosY, string pszBlkName, double dScale, double dAng) 

MxDrawXLib._DMxDrawX 的成员 

int DrawCircle(double dCenterX, double dCenterY, double dRadius) 

MxDrawXLib._DMxDrawX 的成员 

int DrawEllipse(double dCenterX, double dCenterY, double dMajorAxisX, double dMajorAxisY, double dRadiusRatio) 

MxDrawXLib._DMxDrawX 的成员 

int DrawEllipseArc(double dCenterX, double dCenterY, double dMajorAxisX, double dMajorAxisY, double dRadiusRatio, double dStartAng, double dEndAng) 

MxDrawXLib._DMxDrawX 的成员 

int DrawImage(double dPosX, double dPosY, double dScale, double dAng, string pszFilePath) 

MxDrawXLib._DMxDrawX 的成员 

int DrawPathToHatch(double dPatternScale) 

MxDrawXLib._DMxDrawX 的成员 

int DrawPathToPolyline() 

MxDrawXLib._DMxDrawX 的成员 

int DrawPathToSpline() 

MxDrawXLib._DMxDrawX 的成员 

 

int DrawPoint(double dX, double dY) 

MxDrawXLib._DMxDrawX 的成员 

 

int DrawText(double dPosX, double dPosY, string pszText, double dHeight, double dRotation, short horizontalMode, short verticalMode) 

MxDrawXLib._DMxDrawX 的成员 

 

uint DrawColor { set; get; } 

MxDrawXLib._DMxDrawX 的成员 

 

string TextStyle { set; get; } 

MxDrawXLib._DMxDrawX 的成员 

double LineWidth { set; get; } 

MxDrawXLib._DMxDrawX 的成员 

string LineType { set; get; } 

MxDrawXLib._DMxDrawX 的成员 

 

string LayerName { set; get; } 

MxDrawXLib._DMxDrawX 的成员 

string PatternDefinition { set; get; } 

MxDrawXLib._DMxDrawX 的成员复制内容到剪贴板 代码:比如,绘制一个填充: 

'《---------------------------------------》 

'绘制一个有图案的填充 

'angle, x-origin,y-origin, delta-x,delta-y,dash-1,dash-2, … 

'45 = angle 是图案线角度. 

'0 = x-origin 是第一个填充线经过的点位置X坐标 

'0 = y-origin 是第一个填充线经过的点位置Y坐标 

'0 = delta-x 是下一个填充线相对前一个线的X方向偏移 

'0.125 = delta-y 是下一个填充线相对前一个线的Y方向偏移 

MxDrawX1.AddPatternDefinition "MyHatchPattern1", "((45, 0,0, 0,0.125))" 

MxDrawX1.PatternDefinition = "MyHatchPattern1" 

 

'定义一个路径的开始点 

MxDrawX1.PathMoveToEx 600, 3300, 0, 0, 0.3 

'路径的一下个点 

MxDrawX1.PathLineTo 700, 3300 

'路径的一下个点 

MxDrawX1.PathLineTo 700, 3400 

'路径的一下个点 

MxDrawX1.PathLineTo 600, 3300 

 

'把路径变成一个填充,80,是填充图案的缩放比例. 

MxDrawX1.DrawPathToHatch 100 

 

'把所有的实体都放到当前显示视区 

MxDrawX1.ZoomAll 

'更新视区显示 

MxDrawX1.UpdateDisplay 

 

27. 2009.12.31更新下载地址: 

A. 控件升级到VC2008 

B. 支持最新的CAD图纸2010 

C. DWG文件模块是否加载可选 

D. 完善了DWG文件读写模块,解决了以前难解决的编辑图纸问题,为后续支持更为复杂的编辑功能准备了基础. 

E. 增加控件MxDrawX自动安装包(MSI文件),并且控件运行前,不需要安装任何VC环境. 

F. 修改了调试版本的一些错误,现在调试和发行版本一样稳定. 

G. 增加导出pdf功能 

 

 

28. 2010.02.06更新 

 

A. 增加批量打印接口 

函数定义如下: 

static BOOL BatchPrintDialog(MXDRAWOCXHANDLE hOcx, const MxDraw::BATCH_PRINT_DATA& printData); 

// 直接打印,不出来现打印对话框. 

static BOOL Print(MXDRAWOCXHANDLE hOcx, 

McGePoint3d ptLB, // 打印的范围左下角。 

McGePoint3d ptRT, // 打印的范围右上角。 

LPCTSTR pszPrintName, // 打印机名。 

LPCTSTR pszPaperName, // 打印的图纸名。 

int iPrintDirection, // 打印的方向, 

CRect* pRectPageMargin = NULL, // 打印的页边距离,如果转NULL就取打印机默认的页边距。 

LPCTSTR pszLayoutName = NULL, // 打印的布局,为NULL就是模型Model中的内容。 

LPCTSTR pszPrintConfiy = NULL // 打印配制,暂没有使用。 

); 

B. 增加正交绘图模式 

C. 增加分屏显示功能 

D. 增加asp.net的把文件保存到服务器的例程 

E. 修正了一些细节问题 

 

29. 2010.06.18更新 

 

A. 增加搜索图上表格文字功能.类名为:MxTableSearch调用例程: 

MxTableSearch search; 

search.AddTableHeadUnit(_T("序号")); 

search.AddTableHeadUnit(_T("名称")); 

search.AddTableHeadUnit(_T("材料")); 

search.AddTableHeadUnit(_T("长度")); 

 

std::vector<std::vector<CString> > vecTableContents; 

if(search.Do(vecTableContents) ) 

for(UINT i = 0; i < vecTableContents.size();i++) 

std::vector<CString>& vecStr = vecTableContents; 

CString sOut = _T("\n"); 

for(UINT j = 0; j < vecStr.size();j++) 

sOut = sOut + _T(" ") + vecStr[j]; 

acutPrintf(sOut); 

B. 增加把某个dwg图做为背景图打开。函数名为: MxDraw::OpenBackgroundFile 

C. 增加自绘背景接口,可以方便定制控件的显示背景: 

virtual void McDbDatabaseReactor::WordDrawBackGround(const McDbDatabase* pDatabase,McGiWorldDraw* wd,McDbObjectId layoutId); 

D. 增加文字转曲线功能 

static BOOL TextToCurves( 

IN McDbText* pText, 

OUT AcDbVoidPtrArray& aryCurve 

); 

E. 增加VC6下,调用控件例程,使用COM 接口调用,很有参考价值:比如:与用户交互构造选择集: 

// 与用户交到选择实体. 

MxDrawXLib::IMxDrawSelectionSetPtr ssGet; 

ssGet.CreateInstance(__uuidof( MxDrawXLib::MxDrawSelectionSet )); 

if(ssGet == NULL) 

return; 

ssGet->Select (MxDrawXLib::mcSelectionSetUserSelect); 

 

if(ssGet->GetCount() == 0) 

return; 

 

for(long i = 0; i < ssGet->GetCount();i++) 

MxDrawXLib::IMxDrawEntityPtr spEnt = ssGet->Item(i); 

if(spEnt == NULL) 

continue; 

 

CComPtr<IMxDrawLine> spLine; 

spEnt->QueryInterface(&spLine); 

 

if(spLine != NULL) 

//直线对象。 

stuPt sPt; // 开始点 

stuPt ePt; // 结束点 

Convert3dPoint(spLine->GetStartPoint(),sPt); 

Convert3dPoint(spLine->GetEndPoint(),ePt); 

 

continue; 

 

CComPtr<IMxDrawArc> spArc; 

spEnt->QueryInterface(&spArc); 

 

if(spArc != NULL) 

stuPt cenPt; // 圆弧的中点 

double dR = 1; // 半径 

double dSAng = 0; // 开始角 

double dEAng = 0; // 结束角 

Convert3dPoint(spArc->GetCenter(),cenPt); 

dR = spArc->GetRadius(); 

dSAng = spArc->GetStartAngle(); 

dEAng = spArc->GetEndAngle(); 

 

continue; 

 

 

CComPtr<IMxDrawCircle> spCircle; 

spEnt->QueryInterface(&spCircle); 

if(spCircle != NULL) 

stuPt cenPt; // 圆的中点 

double dR = 1; // 半径 

Convert3dPoint(spArc->GetCenter(),cenPt); 

dR = spArc->GetRadius(); 

 

CComPtr<IMxDrawEllipse> spEllipse; 

spEnt->QueryInterface(&spEllipse); 

if(spEllipse != NULL) 

stuPt cenPt; // 圆的中点 

Convert3dPoint(spEllipse->GetCenter(),cenPt); 

double dRadiusRation = 1.0; 

dRadiusRation = spEllipse->GetRadiusRatio(); 

double dStartAng = spEllipse->GetStartAngle(); 

double dEndAng = spEllipse->GetEndAngle(); 

 

 

stuPt majorAxis; 

Convert3dVector(spEllipse->GetMajorAxis(),majorAxis); 

 

F. 增加自主的dxf文件读写库,并且开源,使用者可以非常方便修改错误,源代码在samples\MxDxf50目录下,很有参考价值。 

G. 修改一堆错误,和改了很多细节等。 

H. 增加C#的多文档使用例程 

 

30. 2010.10.12更新: 

 

A. 增加扩展模块的支持,扩展模块名为mrx,与AutoCAD的arx文件是同一类。 

B. 增加扩展模块中可以增加用户自定义函数和命令,自定义函数可以在ActiveX被其它用语言调用。 

C. 修改布局中的一些显示错误 

D. 修改自定义实体的显示错误,自定义实体显示更为准确 

E. 增加region对象的显示 

F. 增加MxExpressTools,ExApp例程,在ExApp例程中有一个非常好的表格文字搜索程序代码 SearchTable.cpp,SearchTable.h,演示控件的图面搜索接口的调用。 MxExpressTools中增加了绘制云线,和测量距离功能,并有源代码可参考 

G. 修改很多细节错误 

H. 控件在网页使用是时,如果客户电脑没有安装控件,增加自动提示安装下载例程代码,在sample\AspNet中 

I. 提高pdf文件的输出分辨率 

 

31. 2010.11.01更新: 

 

A. 增加线重显示 

B. 增加射线显示 

C. 增加块参照显示 

D. 增加dwg批量转pdf功能 

函数名为:static BOOL MxDraw::MultiDwgConvertPdf(IN const CString& sDwgFileDir, 

IN const CString& sPdfFileDir,IN CMxConvertPdfParam* pExParam = NULL); 

E. 增加控件换肤功能,函数名为:static void MxDraw::SetTheme(PaintTheme theme); 

F. 完善曲线打断函数,getSplitCurves,现在可以对Polyline,Line,Arc,做打断 

G. 完善多行文字的绘制处理功能 

 

32. 2010.12.24更新: 

A. 增加Chm帮助文档 

B. 增加固定夹点显示 

C. 增加对多线显示支持 

D. 增加PL 线自交功能 

E. 增加 实体删除,并把内存释放功能 

F. 增加实体被选择后的通知事件 

G. 修改一些细节错误 

 

33. 2011.04.14更新: 

A. 更加完善的标注接口,MxDrawX.ocx里,可以非常方便绘制标注实体,和访问和修改标注实体信息 

B. 增加标注接口的VB调用例程,详细可以参考sample\MxDrawXTestVB6.0 

如绘制对齐标注的代码: 

Private Sub DrawDimAligned_Click() 

MxDrawX1,AddDimStyle "MyDimStyle", "41,0.18,141,0.09,40,200", "77,1,271,3", "3,""+HZ""", "342,0" 

MxDrawX1.DimStyle = "MyDimStyle" 

'把颜色改回黑白色 

MxDrawX1.DrawColor = 0 

'把线型改成实线 

MxDrawX1.LineType = "" 

'设置线宽 4 

MxDrawX1.LineWidth = 0 

 

MxDrawX1.DrawDimAligned 0, 4000, 300, 4500, 150, 4600 

'把所有的实体都放到当前显示视区 

MxDrawX1.ZoomAll 

'更新视区显示 

MxDrawX1.UpdateDisplay 

End Sub 

C. 完善标注接口文档,和帮助文档 

D. 增加线型标注 

E. 增加对齐标注 

F. 增加半径标注 

G. 增加直径标注 

 

34. 2011.05.24更新: 

A. 图层亮度显示控制,可以把一些不重要的图层变成灰色显示,函数如下 

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

// Summary: 

// 设置显示亮度,默认值为100% 

// Parameters: 

// bright - 亮度百分数,取值为0 ~100 

// pszLayerName - 图层名,为空,就设置所有图层 

// hOcx - 控件句柄,为空取当前句柄 

// isAutoUpDisplay - 是否自动更新显示 

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

static bool MxDraw::SetDisplayBright(BYTE bright,LPCTSTR pszLayerName = NULL, 

MXDRAWOCXHANDLE hOcx = NULL,bool isAutoUpDisplay = true); 

B. 增加Undo功能,可以无限制的回退到以前任何操作状态. 

调用static bool MxDraw::EnableUndo(bool isEnable);启用控件的undo功能 

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

// Summary: 

// 是否启用undo功能,控件为了节约内存和效率,默认控件是不启用的 

// 该函数只会影响将要创建的控件的undo功能,如果已经创建的控件不受影响. 

// 所以建议最好在InitMxDraw函数后调用. 

// Parameters: 

// isEnable - 是否启用Undo. 

// Returns: 

// 返回设置前的undo启用状态. 

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

static bool EnableUndo(bool isEnable); 

 

C. 增加如下一些函数 : 

Mx_PutEntityInView ,把一个实体放到视区中, 

Mx_SetBright, 设置当前显示亮度 

增加MxDraw::DrawImage函数,可以在控件中方便插入一个光栅图.,支持PNG透明图片 

D. 增加获得控件CStatusBarInformationReactor状态条信息的反应器 

E. 增加打开DWG文件,可以指定那内容不需要读取,达到快速打开文件的功能 

F. 增加图纸比较功能 

G. 增加保存图纸可以设置密码,和打开有密码的DWG文件 

H. 增加图面批注接口,批注对象是自定实体实现 

I. 增加电子图章接口,图章对象是自定实体实现 

J. 修改布局打印,白色实体打印不出来,点划显示成小短线,等问题 

 

35. 2011.08.18更新: 

A. 增加多行文字编辑功能,并提供源码,在samples\PropertyEditor\PropertyEditor.sln工程中 

B. 增加MxGraph类,用于搜索CAD图上的曲线组成的图形,并创建图类型的数据结构,方便图面搜索使用,现在可以用它求两个曲线,或两点之间的最短路径 

如: 

// 求两个曲线,之间的最短路径 

// 定义一个图对象 

MxGraph mxgraph; 

MrxDbgRbList spFilter = Mx::mcutBuildList(RTDXF0,_T("LINE,ARC,POLYLINE"),0); 

// 由一个曲线id1,创建图. 

if(mxgraph.Create(id1,spFilter.data()) != MxGraph::kOk) 

return false; 

// 得到边id1在图中的编号 

long lNum11 = MXGRAPH_NULL_NUMBER; 

long lNum12 = MXGRAPH_NULL_NUMBER; 

if(!mxgraph.GetEdgeNumber(id1,lNum11,lNum12) ) 

return false; 

// 得到边id2在图中的编号 

long lNum21 = MXGRAPH_NULL_NUMBER; 

long lNum22 = MXGRAPH_NULL_NUMBER; 

if(!mxgraph.GetEdgeNumber(id2,lNum21,lNum22) ) 

return false; 

long lSNum = lNum11; 

long lENum = lNum21; 

std::vector<MxGraphVertex*> vecVertex; 

std::vector<MxGraphEdge*> vecEdge; 

// 返回端点lNum11到端点lNum21的最短路径 

mxgraph.GetShortestPath(lNum11,lNum21,vecVertex,vecEdge); 

if(vecEdge[0]->GetId() == id1) 

lSNum = lNum11; 

else 

lSNum = lNum12; 

if( vecEdge[vecEdge.size() - 1]->GetId() == id2) 

lENum = lNum21; 

else 

lENum = lNum22; 

std::vector<MxGraphVertex*> vecVertex; 

std::vector<MxGraphEdge*> vecEdge; 

mxgraph.GetShortestPath(lSNum,lENum,vecVertex,vecEdge); 

if(vecEdge.size() < 2 

|| vecEdge[0]->GetId() != id1 

|| vecEdge[vecEdge.size() - 1]->GetId() != id2 

return false; 

C. 修改了一堆错误 

 

36. 2011.10.23更新: 

A. 增加视区变化通知接口 

COM接口:事件名称 :Mx_ViewModify,如Js调用 

function CustomEvent(sEventName) 

if(sEventName == "Mx_ViewModify") 

var pParam = wdwg.CustomEventParam(); 

// 得到当前视区显示的文档范围. 

// cent.x 

//alert( pParam.AtDouble(0)); 

// cent.y 

// alert( pParam.AtDouble(1)); 

// width 

//alert( pParam.AtDouble(2)); 

// hieght 

//alert( pParam.AtDouble(3)); 

VC接口: 

CMxDrawFilterWinMsgObject::OnViewModify 

 

B. 增加Mx_DrawImageToBackground函数,把光栅图当着背景显示,VC接口为OpenBackgroundImageFile 

C. 增加,保存dwg图时,保存预览图功能,并把当前的显示范围也保存 

D. 命令行状态和多行文本编辑支持,右键菜单,复制粘贴,命令行窗口大小可以调用。并支持F2显示桌面窗口 

E. 保存的时候 ,是否自动备分,设置接口MxDraw::SetIsAutoBakFile 

F. 增加简化命令输入,和定制命令名 

G. 支持文件保存为二进流,和从二进制流加载图纸功能。 

COM接口:ReadBinStream ,WriteBinStream 

如VB代码: 

Dim aryData As Variant 

MxDrawX1.WriteBinStream aryData, "", 23 

 

Dim ln As Long 

ln = UBound(aryData) 

 

ReDim sbyte(0 To ln) As Byte 

 

Dim str$ 

For i = 0 To ln 

sbyte(i) = aryData(i) 

'str = str & " " & (aryData(i)) 

Next 

 

'MsgBox str 

 

'MxDrawX1.ReadBinStream aryData, "", 16777215 

 

MxDrawX1.ReadBinStream sbyte, "", 16777215 

H. 修改布局名称支持中文 

 

I. 增加打印功能从图上选择打印范围 ,或取上一次打印范围等功能,输入打印范围 

同时增加:Mx_Print 接口,可以不出打印窗口,而直接打印,可以用这个接口实现批量打印 

例如:VB代码。 

 

'打印10,10,100,100范围的图纸到当前系统默认设置打印机 

Dim printParam As MxDrawResbuf 

Set printParam = New MxDrawResbuf 

' 打印的左下角10,10 

printParam.AddDouble 10 

printParam.AddDouble 10 

 

' 打印的右上角100,100 

printParam.AddDouble 100 

printParam.AddDouble 100 

 

' 开始打印 

MxDrawX1.CallCustomFunctionEx "Mx_Print", printParam 

J. 命令行支持输入相对坐标,距离,输入关键字等功能 

K. 增加判断了图纸的改动接口,MxDraw::IsModifyed 

L. 增加保存jpg文件也能上传到服务器 

M. 修改AddLayer函数,有反删除功能 

N. 增加曲线的延长线相交 

O. 增加显示或隐基藏工具条上某个按钮功能,并增加工具条从服务器上的文件加载。 

P. 修改带形的线显示不对问题 

Q. 增加OLE对象的读取与保存功能 

R. 增加自定义实体的CDC绘接口,用户可以使用CDC指定绘制图形,来实现更多的特殊的显示效果,使用该接口实现了一个DrawImageMark 函数,可以在图上绘一个图形标记,而它不会随视区的缩放而变化。 

接口为 :MxDraw::DrawImageMark 

S. 增加PL线打碎功能 

 

37. 2011.12.02更新: 

A. 完善与用户交输入函数,并把与用户交的函数用类封装,源码在sample\MxMrxDbg中方便使用,详列表如下 

MrxDbgUiPrAngle 对应 acedGetAngle 

MrxDbgUiPrDist 对应 acedGetDist 

MrxDbgUiPrDouble对应 acedGetReal 

MrxDbgUiPrEntity对应 acedEntSel 

MrxDbgUiPrInt 对应 acedGetInt 

MrxDbgUiPrKeyWord 对应 acedGetKword 

MrxDbgUiPrPoint 对应 acedGetPoint 

MrxDbgUiPrString 对应 acedGetString 

B. 新增加,剪切,延伸,导角,导圆角,打碎,绘多义线,绘多边线功能,源码在sample\MxEdit中 

如 绘多边线的代码: 

C. 完善绘直线,绘圆,绘圆弧,缩放,旋转命令 

D. 增加把一个实体绘制到jpg文件函数 

 

2012.02.02更新下载地址 

 

1.增加自定义文件格式(扩展名为MXG)文件,支持文件预览,图纸加密,和不同等级的压缩保存 

 

自定义文件格式在系统中的预览: 

 

 

2.增加支持OLE显示 

 

 

3.增加Wipeout显示 

 

 

4.增加CDC方式自绘控件背景接口,MxDrawBackGroundReactor,使用该接口可以和GIS地图无缝接合,并显示到控件中。 

 

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

 

 

// Summary: 

// 自绘函数,用户需要实现该函数,实现自绘背景. 

// Parameters: 

// pDC - 自绘使用的CDC对象 

// bkColor - 控件的背景颜色 

// ptDocLb - 控件当前显示文档范围的左下角坐标 

// ptDocRt - 控件当前显示文档范围的右上角坐标 

// ptViewLT - 控件当前显示视区的左上角坐标 

// ptViewRB - 控件当前显示视区的右下角坐标 

// dViewAngle - 视区的旋转角度 

// isViewMoveing- 当前是否正处于视区移动状态。 

// Returns: 

// 返回TRUE,使用背景绘制. 

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

virtual BOOL Draw(IN CDC* pDC, 

IN MxDraw::MXDRAWOCXHANDLE hOcx, 

IN COLORREF bkColor, 

IN const McGePoint3d& ptDocLb, 

IN const McGePoint3d& ptDocRt, 

IN const CPoint& ptViewLT, 

IN const CPoint& ptViewRB, 

IN double dViewAngle, 

IN BOOL isViewMoveing 

) = NULL; 

 

 

 

5.增加把多个控件的内容打印到一张图纸,实现嵌套打印,接口类名为:MxNestedPrintWork,OCX接口 

 

为:MxDrawXCustomFunction::Mx_NestedPrint 

 

6.增加控件键盘事件响应接口,MxDrawXCustomEvent::KeyDown,MxDrawXCustomEvent::KeyUp 例如: VB下,处理F1被按下的代码 

Private Sub MxDrawX1_CustomEvent(ByVal sEventName As String) 

If sEventName = "KeyDown" Then 

Dim param As MxDrawXLib.MxDrawResbuf 

' 得到事件参数 

Set param = MxDrawX1.CustomEventParam 

 

Dim lVk As Long 

lVk = param.AtLong(0) 

 

' #define VK_F1 0x70,十进制值:112 

If lVk = 112 Then 

MsgBox "F1按下" 

' 设置返回值1表示该事件不再传递处理. 

MxDrawX1.SetCustomEventResult "1" 

End If 

End If 

 

2012.03.01更新下载地址 

1. 控件增加GIS模块,可以做到CAD与GIS上的接合,例程 

Release\TestMxGis.exe演示显示自动加Google地图功能。 

 

 

新增加Gis相关函数 

 

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

// Summary: 

// 加载控件自带的GIS库,默认是不会自动加载的。 

// Parameters: 

// ptGisCenterPoint - 初始的GIS显示中心位置 

// dUnitSize - 初始时,屏幕上一个象素显示代表的GIS坐标长度。 

// Returns: 

// 成功加载GIS模块,返回True; 

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

static bool LoadMxGisLibrary(); 

 

 

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

// Summary: 

// 设置GIS初始化数据 

// Parameters: 

// ptGisCenterPoint - 初始的GIS显示中心位置 

// dUnitSize - 初始时,屏幕上一个象素显示代表的GIS坐标长度。 

// pCadCenterPoint - GIS中心位置,对应的CAD坐标,默该为空,自动取ptGisCenterPoint的值。 

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

static void SetMxGisDefaultData(McGePoint2d ptGisCenterPoint, 

double dUnitSize,McGePoint2d* pCadCenterPoint = NULL); 

 

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

// Summary: 

// 把控件显示到GIS设置的初始位置 

// Parameters: 

// hOcx - 控件窗口名柄,不能为空 

// Returns: 

// 成功返回TRUE. 

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

static BOOL InitMxGisOcxStatus( 

IN MXDRAWOCXHANDLE hOcx); 

 

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

// Summary: 

// 把CAD图纸坐标转成GIS坐标. 

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

static McGePoint3d MxCadToGisCoord(McGePoint3d ptCad); 

 

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

// Summary: 

// 把GIS坐标转成CAD图纸坐标. 

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

static McGePoint3d MxGisToCadCoord(McGePoint3d ptGis); 

 

 

2. 修改一些细节问题 

 

2012.04.06更新下载地址 

1. 增加UCS坐标系统 

2. 完善视区旋转命令 

3. 增加windows结构异常错误捕捉,在程序出错时,会自动生成dmp文件 

4. 增加线型从lin文件加载功功能,并把一些常用的线型放到缺省线型中 

5. 完善工具条上面的图层,线型,颜色组合框功能,它们能显示当前选中实体的参数,并能直接修改 

6. 完善与交互输入点函数,支持用户直接输入一个距离定位 

7. 完善绘矩形框命令,功能做到与AutoCAD一样,源码在sample\MxDrawRectang.cpp 

8. 增加返回没加加载的字型shx文件函数MxDraw::GetLoadFailedShxFile,和重新加shx字型文件函数MxDraw::ReLoadShxFile 

9. 修改了一些细节问题 

2012.05.10更新下载地址 

1. 增加对象属性编辑查询功能,源码在sample\PropertyEditor工程中,所以使用该功能需要先加载PropertyEditor.mrx,然后调用MxDraw::EnablePropertyEditWindow启用该功能,MxDraw::ShowPropertyEditWindow用于显示属性编辑窗口 

2. 增加MxDrawXCustomFunction::Mx_PrintHtml函数,专门用于控件在网页中使用,实现控件与网页一起打印。使用例子参考sample\ie\iedemo_print.htm 

3. 增加MxDrawService接口,用于B\s架构,服务器后台调用,实现无窗口时,调用控件的功能,比如实现后台DWG到 JPG的转换,DWG图上的信息提取等功能. 

4. 增加HasRedo,HasUndo函数,用来判断当前undo,redo数据是否为空. 

 

// Summary: 

// Redo数据是否为空 

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

static bool HasRedo(IN MxDraw::MXDRAWOCXHANDLE hOcx); 

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

// Summary: 

// Undo数据是否为空 

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

static bool HasUndo(IN MxDraw::MXDRAWOCXHANDLE hOcx); 

5. 修改一些细节问题 

 

2012.08.13更新下载地址 

1.增加动态输入功能,类拟于AutoCAD的DYN功能 

可以修改系统变量,DYNINPUT,值为1表打开该功能,值为0表示关闭该功能。 

2.增加CTRL+C ,CTRL+V,热键复制,粘贴功能。 

VC2008,调用如下函数,开启或关闭: 

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

// Summary: 

// 启用控件的Ctrl+C,Ctrl+V功能 ,默认为不启用。 

// Parameters: 

// isEnable - 是否启用。 

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

static void EnableClipboard(bool isEnable); 

使用MxDrawX.ocx,修改IniFilePath 的值,EnableClipboard=Y,启用控件的Ctrl+C,Ctrl+V功能 ,默认为不启用。 

3.增加MxDrawX.ocx接口,MxDrawUiPrPoint ,MxDrawUiPrString ,用户与控件交互取点,和输入字符串,支持默认值和输入关键值功能,例如下: 

例如: VB代码. 

Dim getPoint As MxDrawUiPrPoint 

Set getPoint = New MxDrawUiPrPoint 

getPoint.message = "点取一个点 或[闭合(N)/放弃(A)]" 

getPoint.keyWords = "N A" 

 

Dim basePoint As MxDrawPoint 

Set basePoint = New MxDrawPoint 

basePoint.x = 100 

basePoint.y = 100 

 

getPoint.basePoint = basePoint 

getPoint.setUseBasePt True 

 

Dim ret As MCAD_McUiPrStatus 

ret = getPoint.go() 

 

If ret = MxDrawXLib.mcOk Then 

'输入一个点 

 

MsgBox getPoint.Value().x 

MsgBox getPoint.Value().y 

 

ElseIf ret = MxDrawXLib.mcKeyWord Then 

' 输入了关键字 

MsgBox "关键字" 

MsgBox getPoint.keyWordPicked() 

End If 

4. 修改InsertBlock ,DrawImage接口,支持web路径(http://开头的网络路径.),直接从服务器上读取文件 

5. 修改有些图转pdf文字会成?问题, 图块插入对多行文字,标注实体会丢失问题. 

6. 修改一些其它细节问题。 

2012.08.30更新下载地址 

1. 增加对象追踪捕捉功能 

 

2. 增加极轴功能 

 

3. 增加栅格捕捉 

 

2012.09.24更新下载地址 

1. 增加控件标尺功能 

默认不会显示标尺,调用函数MxDraw::ShowRulerWindow ,显示标尺,COM接口,修改IniFilePath属性值,SHOWRULERWINDOW=Y,显示标尺窗口 

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

// Summary: 

// 是否显示标尺窗口,默认是不显示的。 

// Parameters: 

// hOcx - 控件句柄 

// isShow - 为TRUE显示,否则隐藏 

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

static void MxDraw::ShowRulerWindow(IN MXDRAWOCXHANDLE hOcx,bool isShow); 

2. 增加菜单功能 

默认加载mxmenu.mnu文件中的菜单,可用记事本编该文件修改菜单。菜单默认不显示,调用MxDraw::ShowMenuBar函数显示菜单 ,COM接口,修改ShowMenuBar属性显示菜单. 

 

3. 增加填充命令 

源码在Sample\MxEdit\DrawHatchDialog.cpp,Sample\MxEdit\SelectPatternDialog.cpp 

由一个点,搜索闭合区域,创建填充: 

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

// Summary: 

// 根据一个点,在当前控件显示范围内搜缩闭合区域,然后用该闭合区域创建填充对象。 

// Parameters: 

// pickPoint - 开始搜索点 

// Returns: 

// 失败返回NULL,成功返回创建的确Hatch对象,指针需要用户自己释放。 

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

static McDbHatch* MxDraw::BuilderHatchFromPoint(McGePoint3d pickPoint); 

 

4. 增加在线打开ftp服务器上的图纸功能 

5. 修改一些错误 

 

2012.11.01更新 

1.增加MxCAD.exe软件,封装MxDraw控件,实现的一个CAD软件. 

 

2.增加文字样式设置命令, 

 

3.增加线宽设置命令 

 

4.增加标注样式设置 

 

5.增加块定义命令 

 

6.完善块插入命令 

 

7.增加修改实体显示顺序命令 

上面2,3,4,5,6,7源码都在samples\MxEdit\MxEdit工程中 

 

8.修改了一些错误 

 

 

 

2013.06.08更新 

 

1. 增加移动平台支持,可以在Android,苹果系统上运行 

下载地址,官网首页 

www.mxdraw.com 

 

下面是,Android开发教程目录,完整文档下载: 

http://www.mxdraw.com/index.php? ... ;catid=25&id=22 

 

更新时间:2013年6月20日 

Android开发使用控件入门 

成都梦想凯德科技有限公司 

WEB:HTTP://WWW.MXDRAW.COM/ 

保留所有权利 

未经许可,请勿分发本文档的部分或全部 

 

 

1、 环境搭建:••• 3 

1.1、 下载Android SDK• 3 

1.2、 下载JDK6• 4 

1.3、 下载Eclipse3.4.1• 6 

1.4、 下载Eclipse的Android ADT插件•• 7 

1.5、 在eclipse中集成c/c++开发环境,安装CDT插件•• 10 

1.6、 NDK安装•• 10 

1.7、 安装Cygwin• 11 

1.8、 安装Sequoyah• 12 

2、 第一个例子Hello Word• 13 

2.1、 运行AVD Manager,创建android的虚拟机•• 13 

2.2、 打开Ndk hello-jni的例子•• 14 

2.3、 运行控件例程•• 20 

 

Doc 文档下载: 

 

http://www.mxdraw.com/download/AndroidDev.doc 

 

 

控件2013.09.10最新更新 

 

更新内容 

 

1. 增加命令调用时可传参数,Mx_SendStringToExecute 

 

下面代码是调用一个绘矩形框命令,并设置线宽为10. 

 

param.AddString "Mx_Rectang" 

'是绘制矩形的线宽.这是命令参数。 

 

param.AddDouble 10 

MxDrawX1.CallCustomFunctionEx "Mx_SendStringToExecute", param 

 

 

2.增加Mx_SendStringToExecuteFun ,可以实现在程序中直接调用命令函数 

 

 

3.修改jpg打印时,在个别情况下,打印不对的问题 

 

 

4.修改调用clear函数时,把一个对象内存释放,可能会出错的问题 

 

 

5.增加控件自定义参数功能,这样可在用户的mrx程序访问到 

 

 

6.修改打开文件函数,OpenDwgFile ,使用其更为健壮,在控件还未初始完成时,也能打开成功 

 

 

7.增加mcdbEntitysLastCmd函数,得到一个命令执行完后,往数据库中新增加的对象id数组 

 

 

8.增加面积,周长计算命令 

 

 

9.修改保存图纸,等一堆的小问题,现在控件版本应该是最稳定了 

 

10. 支持2013最新dwg文件格式 

 

11. 增加MxDraw::BuilderHatchFromPoint函数,根据一个点,在当前控件显示范围内搜缩闭合区域,然后用该闭合区域创建填充对象

Copyright (c) 2010. All rights reserved.
你认为该帮助怎么样? 发送反馈信息!