📄 exam05b.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 + -