为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C++
慕田峪4524236 2022-07-14 16:11:56
// 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_FILEstatic char THIS_FILE[] = __FILE__;#endifextern "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 APIENTRYDllMain(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;}
查看完整描述

1 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

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的值


查看完整回答
反对 回复 2022-07-18
  • 1 回答
  • 0 关注
  • 230 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号