返回介绍

创建窗口、打开dwg图纸

发布于 2023-08-09 23:10:33 字数 2040 浏览 0 评论 0 收藏 0

在面板中添加一个Group Box来制定CAD控件界面大小、添加两个按钮,分别为“打开DWG”和“Hello World”,如下:

blob.png

Group Box设置为不可见:

blob.png

包含资源文件

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

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文