⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exam05b.cpp

📁 ARX/CAD二次开发
💻 CPP
字号:
#include <adslib.h>
#include <rxdlinkr.h>
#include <aced.h>
#include <dbents.h>
#include <geassign.h>
#include <dbsymtb.h>
#include <dbapserv.h>
#include <achapi.h>

void initApp();
void unloadApp();
extern "C" AcRx::AppRetCode
acrxEntryPoint(AcRx::AppMsgCode msg, void* appId);
void addHyperLink();
void listHyperLink();

//
void addHyperLink()
{
	ads_name en;
	ads_point pt;
	AcDbEntity * pEnt;
	AcDbObjectId pEntId;

	acedEntSel("\nSelect an Entity: ", en, pt);
	acdbGetObjectId(pEntId, en);
	acdbOpenObject(pEnt, pEntId, AcDb::kForWrite);

	AcDbHyperlinkCollection * pcHCL = NULL;

	ACRX_X_CALL(pEnt, AcDbEntityHyperlinkPE)->
		getHyperlinkCollection(pEnt, pcHCL, false, true);
		
	acutPrintf("\nEnter Hyperlink attach to entity!");

	char sName[100], sLocation[100], sDescription[100];

	if (acedGetString(TRUE, "\nEnter hyperlink name: ", sName)
		!= RTNORM)
		acutPrintf("Invalid input\n");

	if (acedGetString(TRUE, "\nEnter hyperlink location: ",
		sLocation) != RTNORM)
		acutPrintf("Invalid input\n");

	if (acedGetString(TRUE, "\nEnter hyperlink description: ",
		sDescription) != RTNORM)
		acutPrintf("Invalid input\n");

	if (strcmp(sName, "") || strcmp(sLocation, "") ||
		strcmp(sDescription, ""))
		pcHCL->addTail(sName, sDescription, sLocation);
	
	ACRX_X_CALL(pEnt, AcDbEntityHyperlinkPE)->
		setHyperlinkCollection(pEnt, pcHCL);
	delete pcHCL;
	pEnt->close();
}

//
void listHyperLink()
{
	ads_name en;
	ads_point pt;
	AcDbEntity * pEnt;
	AcDbObjectId pEntId;

	acedEntSel("\nSelect an Entity: ", en, pt);
	acdbGetObjectId(pEntId, en);
	acdbOpenObject(pEnt, pEntId, AcDb::kForWrite);

	AcDbHyperlinkCollection * pcHCL = NULL;

	ACRX_X_CALL(pEnt, AcDbEntityHyperlinkPE)->
		getHyperlinkCollection(pEnt, pcHCL, false, true);
	if (pcHCL->count() != 0)
	{
		AcDbHyperlink * pcHO;
		acutPrintf("\nThe following hyperlink info exists on the entity:");

		int i = 0;
		for (i = 0; i < pcHCL->count(); i++)
		{

			pcHO = pcHCL->item(i);
			acutPrintf("\nHyperlink name: %s", pcHO->name());
			acutPrintf("\nHyperlink location: %s",
				pcHO->subLocation());
			acutPrintf("\nHyperlink description: %s",
				pcHO->description());
		}
	}
	else
	{
		acutPrintf("\nThe Entity you selected has no HyperLink!");
	}

	delete pcHCL;
	pEnt->close();
}

//
void
initApp()
{
    acedRegCmds->addCommand("EXAM05B",
                            "ADDHL",
                            "ADDHL",
                            ACRX_CMD_MODAL,
                            addHyperLink);

    acedRegCmds->addCommand("EXAM05B",
                            "LISTHL",
                            "LISTHL",
                            ACRX_CMD_MODAL,
							listHyperLink);
}

//
void
unloadApp()
{
    acedRegCmds->removeGroup("EXAM05B");
}

//
extern "C" AcRx::AppRetCode
acrxEntryPoint(AcRx::AppMsgCode msg, void* appId)
{
    switch (msg) {
    case AcRx::kInitAppMsg:
        acrxDynamicLinker->unlockApplication(appId);
		acrxDynamicLinker->registerAppMDIAware(appId);
        initApp();
        break;
    case AcRx::kUnloadAppMsg:
        unloadApp();
    }
    return AcRx::kRetOK;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -