c++快速入门(com接口)
http://www.mxdraw.com/help_3_20100.html
CAD网页版快速入门(asp aps.net php java)
http://www.mxdraw.com/help_5_20101.html
VB快速入门
http://www.mxdraw.com/help_4_20102.html
Delphi快速入门
http://www.mxdraw.com/help_4_20103.html
CSharp快速入门
http://www.mxdraw.com/help_4_20104.html
C++bulider快速入门
http://www.mxdraw.com/help_3_20105.html
java快速入门
http://www.mxdraw.com/help_4_20106.html
QT快速入门
http://www.mxdraw.com/help_4_20107.html
易语言快速入门
http://www.mxdraw.com/help_4_20108.html
Powerbuilder快速入门
运行CAD控件安装包(自解压程序),此演示使用VC2010语言开发,如果想在除VC2010外的其他语言(如C#、VB...)、网页、或C++其他版本下使用,则需要使用控件的ActiveX版。
点击运行VS2017,启动后点击 左上角【文件(F)】->【新建(N)】->【项目(P)】,若正确安装VS将显示如下界面:
可在 名称(N) 文本框内键输入项目名字,在 位置(L) 文本框内选择 控件下的sample目录:MxDraw52\Src\MxDraw5.2\samples,如下:
MxDraw52\Src\MxDraw5.2\samples,点击确定按钮,选择“ 基于对话框 ”。如下所示:
打开工程,点工程属性窗口,在属性窗口中, 将设置平台工具集为“ Visual Studio 2010 (v100) ”,字符集为“ 使用 Unicode 字符集 ”。根据需求设置输出目录到控件 \Bin\vc100x64d 目录下,在此实例中我们输出到DEBUG/ 64 版。或将生成的EXE拷贝至上述目录下,亦可将上述目录下的环境文件拷贝至EXE所在目录下。如下所示:
设置包含目录为控件 \Src\MxDraw5.2\MxInc ; 设置库目录为控件 \Src\MxDraw5.2\libvc100 。
如下所示:
或者打开控件sample目录下的Edit工程,将其设置直接复制即可,如下:
在 stdafx.h 中加入包含CAD控件头文件代码。
#include "..\..\..\MxInc\MxDraw.h"
在 CViewApp::InitInstance() 中加入对初始化控件函数的调用。
BOOL CHelloMxDrawApp::InitInstance() { INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); AfxEnableControlContainer(); CShellManager *pShellManager = new CShellManager; CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows)); SetRegistryKey(_T("应用程序向导生成的本地应用程序")); ////////////////////////////////////////////////////////////////////////// MxDraw::InitMxDraw();//注册控件 ////////////////////////////////////////////////////////////////////////// CHelloMxDrawByCPPDlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { } else if (nResponse == IDCANCEL) { } else if (nResponse == -1) { TRACE(traceAppMsg, 0, "警告: 对话框创建失败,应用程序将意外终止。\n"); TRACE(traceAppMsg, 0, "警告: 如果您在对话框上使用 MFC 控件,则无法 #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS。\n"); } if (pShellManager != NULL) { delete pShellManager; } #if !defined(_AFXDLL) && !defined(_AFX_NO_MFC_CONTROLS_IN_DIALOGS) ControlBarCleanUp(); #endif ////////////////////////////////////////////////////////////////////////// MxDraw::UnInitMxDraw();//释放控件 ////////////////////////////////////////////////////////////////////////// return FALSE; }
在 HelloMxDrawDlg.h 中生成的Dialog类中添加控件窗口句柄的成员变量。
MxDraw::MXDRAWOCXHANDLE m_hDrawOcx;
在面板中添加一个Group Box来制定CAD控件界面大小、添加两个按钮,分别为“打开DWG”和“Hello World”,如下:
Group Box设置为不可见:
包含资源文件
#include "resource.h"
在HelloMxDrawDlg.cpp的 OnInitDialog() 函数中添加如下代码:
// TODO: 在此添加额外的初始化代码 CRect rcPos; GetDlgItem(IDC_RANGE_STATIC)->GetWindowRect(rcPos); ScreenToClient(rcPos); m_hDrawOcx = MxDraw::CreateMxDraw(this, rcPos, MxDraw::kShowCmdLineWindow); ASSERT(m_hDrawOcx != NULL);
为“打开DWG”按钮增加单击事件,在事件中添加如下代码:
// TODO: 在此添加控件通知处理程序代码 CFileDialog openDlg(TRUE, _T("dwg"), NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("dwg(*.dwg) | *.dwg||"), this); CString sFileName; //打开对话的初始路径 openDlg.m_ofn.lpstrInitialDir = _T("C:\\"); //显示打开文件的对话框 if (openDlg.DoModal() == IDOK) sFileName = openDlg.GetPathName(); else return; //打开dwg文件,并显示 if (!MxDraw::ReadDwg(m_hDrawOcx, sFileName)) { CString sError; sError.Format(_T("打开dwg文件%s失败"), sFileName); AfxMessageBox(sError); }
为“Hello World”按钮增加单击事件,在事件中添加如下代码:
void CHelloMxDrawByCPPDlg::OnBnClickedHelloworldButton() { // 通过 新建(读取空文件) 来清空当前空间 MxDraw::ReadDwg(MxDraw::GetCurOcxHandle(), _T("")); // 定义文字对象。 McDbText * pText = new McDbText( McGePoint3d(100, 100, 0), //文字位置 L"Hello World", //文字内容 McDbObjectId::kNull, //文字样式,为空则取当前默认样式 200.0 //文字高度 ); // 设置文字颜色. pText->setColorIndex(Mx::mcedRGB2Index(RGB(255, 0, 0))); // 添加当前图形数据库中 MrxDbgUtils::addToCurrentSpaceAndClose(pText); // 显示居中. Mx::ZoomE(); // 刷新 MxDraw::UpdateDisplay(MxDraw::GetCurOcxHandle()); }
至此就是在VC++完成的一个用控件“ 打开DWG ”的入门功能,我们编译生成exe文件, 如果我们设置了输出到控件 \Bin\vc100x64d\... 直接运行即可; 或者将CAD控件 \Bin\vc100x64d\ 下的文件拷贝至生成的EXE所在目录下。运行效果如下:
更多的实例代码在CAD控件 \Src\MxDraw5.2\samples 下可找到。如Edit,MxDrawCADTools,MxDrawOcx,ExApp,CustomEntity,MxExpressTools。