为了更好的使用C++利于扩展的特点,用类的方法重新编写了创建直线并修改颜色。首先编写一个通用的类CDwgDatabaseUtil,用于向模型空间增加实体。在VS2012左侧的项目文件目录树中右键“源文件”,选择“添加->类”,然后选择C++类后点击添加,在出现的对话框中输入类的名称,点击完成后发现同时增加了DwgDatabaseUtil.cpp文件和DwgDatabaseUtil.h文件。采用同样的方法增加CEntityUtil类用于修改实体属性和CLineUtil类用于增加直线。
在DwgDatabaseUtil.h中增加如下代码:
#pragma once
class CDwgDatabaseUtil
{
public:
CDwgDatabaseUtil();
virtual ~CDwgDatabaseUtil();
// 将实体添加到模型空间
static AcDbObjectId PostToModelSpace(AcDbEntity *pEnt, AcDbDatabase *pDb = acdbHostApplicationServices()->workingDatabase());
};
在DwgDatabaseUtil.cpp中增加如下代码:
#include "stdafx.h"
#include "DwgDatabaseUtil.h"
CDwgDatabaseUtil::CDwgDatabaseUtil()
{
}
CDwgDatabaseUtil::~CDwgDatabaseUtil()
{
}
AcDbObjectId CDwgDatabaseUtil::PostToModelSpace(AcDbEntity *pEnt, AcDbDatabase *pDb)
{
// 检查输入参数的有效性
assert(pEnt); // 等效于assert (pEnt != NULL);
//