以管理员身份启动CAD控件 \Bin\vc100\RegistMxDrawX.exe ,以向系统注册梦想CAD控件。
运行 VC6 ,新建工程,点击如下图的 命令菜单 ”,出现插入组件窗口


导入CAD控件后的工具条:

在 stdafx.h 文件中导入CAD控件的类型库,代码如下:
#import "..\..\..\..\..\Bin\vc100d\MxDrawX.ocx" rename("GetObject", "MxGetObject")
rename("DrawText", "MxDrawText") rename("GetClassName", "MxGetClassName")
rename("SetProp", "MxSetProp") rename("GetProp", "MxGetProp")
rename("GetTempPath", "MxGetTempPath")在对话框资源中插入CAD控件,编译运行程序,效果如下所示:

先在系统中注册MxDrawX.ocx,在VC中引用MxDrawX.ocx,如下图,执行导入组件命令。

在Components and controls gallery对话框,选择MxDrawX.ocx,点击插入按钮。
在Stdafx.h文件中引入CAD控件的类型库,如下代码:
// 导入MxDrawX.ocx类型库,事先需要设置VC包含路径,指名MxDrawX.ocx所在位置 #import "MxDrawX.ocx" // 包括ATL库,可以它的COM智能指针 #include "ATLBASE.H" // 使用MxDrawXLib名字空间. using namespace MxDrawXLib;
在对话框资源编辑器里,引用CAD控件,并设置控件的IniFilePath属性值为EnableViewModifyNotify=Y如下:


响应控件的,自定义事件,用VC向导自动加入:

增加CAD控件变量,用向导自动加入:

在CAD控件事件处理函数里,加入如下代码,得到视区变化的通知:
void CTestMxDrawXDlg::OnCustomEventMxdrawxctrl1(LPCTSTR sEventName)
{
// TODO: Add your control notification handler code here
CString sEventNameTmp(sEventName);
// 得到事件参数
IDispatch* pDispatch = m_ocx.CustomEventParam();
CComPtr<IMxDrawResbuf> spParam;
pDispatch->QueryInterface(&spParam);
// Mx_ViewModify 是事件名称.
if(sEventNameTmp == _T("Mx_ViewModify"))
{
// 视区的中心点X坐标。文档坐标
DOUBLE dCenX = spParam->AtDouble(0);
// 修改后的视区的中心点Y坐标。文档坐标
DOUBLE dCenY = spParam->AtDouble(1);
// 视区宽度,文档坐标
DOUBLE dW = spParam->AtDouble(2);
// 视区高度,文档坐标
DOUBLE dH = spParam->AtDouble(3);
CString sT;
sT.Format(_T("中心点X: %lf,中心点Y:%lf,视区宽度:%lf,视区高度:%lf"),
dCenX,dCenY,dW,dH);
AfxMessageBox(sT);
}
// 释放COM接口
pDispatch->Release();
}