猿问

能帮忙完成这个程序吗?谢谢大家

// ArxMFC.cpp : Defines the initialization routines for the DLL.
//

#include "stdafx.h"
#include <afxdllx.h>
#include "ArxMFC.h"
#include "ArxMFCdlg.h"
#include "AcExtensionModule.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

extern "C" HWND adsw_acadMainWnd();
AC_IMPLEMENT_EXTENSION_MODULE(theArxDLL);

void dialogCreate()
{
ArxMFCdlg dlg(CWnd::FromHandle(adsw_acadMainWnd()));
int nReturnValue=dlg.DoModal();
}

static void initApp()
{
CAcModuleResourceOverride resOverride;
acedRegCmds->addCommand("ACUISAMPLE","arxmfc","arxmfc",ACRX_CMD_MODAL,dialogCreate,NULL,-1,theArxDLL.ModuleResourceInstance());
}

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

extern "C" int APIENTRY
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
UNREFERENCED_PARAMETER(lpReserved);

if (dwReason == DLL_PROCESS_ATTACH)
{
theArxDLL.AttachInstance(hInstance);
}
else if (dwReason == DLL_PROCESS_DETACH)
{
theArxDLL.DetachInstance();
}
return 1;
}

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

慕田峪4524236
浏览 231回答 1
1回答

慕码人2483693

void dialogCreate(){ArxMFCdlg dlg(CWnd::FromHandle(adsw_acadMainWnd()));int nReturnValue=dlg.DoModal();}这个是创建对话框的,如果你按下值为nReturnValue的按钮时摆弄创建一对话框static void initApp(){CAcModuleResourceOverride resOverride;acedRegCmds->addCommand("ACUISAMPLE","arxmfc","arxmfc",ACRX_CMD_MODAL,dialogCreate,NULL,-1,theArxDLL.ModuleResourceInstance());}这段是初始化工程的void unloadApp(){acedRegCmds->removeGroup("ACUISAMPLE");}退出工程switch(msg){case AcRx::kInitAppMsg:acrxDynamicLinker->unlockApplication(pkt);acrxDynamicLinker->registerAppMDIAware(pkt);initApp();break;case AcRx::kUnloadAppMsg:unloadApp();break;case AcRx::kInitDialogMsg:break;}return AcRx::kRetOK;这段是一个SWITCH判断,先初始化APP,如果接受的信息是UnloadApp 当然就执行unloadApp,如果接收到InitDialog的话就不执行操作,最后返回kRetOK的值
随时随地看视频慕课网APP
我要回答