1

来源:互联网 发布:cms监控客户端 编辑:程序博客网 时间:2024/05/01 14:13

如果是用ARX的向导自动创建的,有一个选项是"是否支持MFC",
而且还细分是静态MFC链接库还是动态MFC链接库.
如果没有勾上,在stdafx.h里面就不会自己帮你包含MFC的头文件,
当然你可以手动自己连.


vs2002+Autocad2006


1、新建项目->arx项目,名称为MFClab,点击左边MFC Support,选择Extension DLL

using MFC shared DLL (recommended for MFC support),再点Finish;
2、上步完成后解决方案应该可以看到acrxEntryPoint.cpp,DocData.cpp,MFClab.cpp,

StdAfx.cpp,DocData.h,Resource.h,StdAfx.h这几个文件有MFC.rc;
3、双点acrxEntryPoint.cpp打开,点arx工具条上的"a>",出现ObjectARX Commands对话

框,在ARX command list:列表中点右键,在右键中点New,则命令列表中多出了一行,将

Localized Name里的MyCommand1改成你的命令名,这个命令名即是你以后在cad中输入的

命令名,然后点OK;
4、加入对话框资源。点项目—>添加资源,在添加资源对话框中选Dialog,然后点新建,

对话框资源就加入到了项目中。双点对话框蓝色的部份,出现MFC类向导对话框,在类名

中输入类名Dialog1,基类选CDialog,其它的按默认值,点击完成,回到C++主界面;
5、在解决方案资源管理器中双点Dialog1.cpp(与第4步输入的对话框名相同)打开它,

点菜单编辑->查找替换,查找内容为“CDialog”退第4步中的基类名,替换

为"CAcUiDialog",注意这里的大小写,点全部替换;
6、打开Dialog1.h(与第4步输入的对话框名相同),按第5步的方法将"CDialog"替换

为"CAcUiDialog",在文件的开头加上这几行#include "resource.h"
#include <dbsymtb.h>
#include <dbapserv.h>
#include <adslib.h>
#include <adui.h>
#include <acui.h>
7、在解决方案资源管理器中双点Dialog1.cpp(与第4步输入的对话框名相同)打开它,

在文件头部有一行#include "arxMFClab.h"(与C++主窗口左上角的工程名相同),将这

行删除,加上一行#include "resource.h";
8、在解决方案资源管理器中双点acrxEntryPoint.cpp打开它,在文件顶上加上一行

#include "Dialog1.h"(与第4步中的对话框名同名),在virtual AcRx::AppRetCode

On_kInitAppMsg (void *pkt) {
  ............
                                   //这里加上下边一行
                   CAcModuleResourceOverride resOverride;
  return (retCode) ;
 }
9、编译应该没有错误;
,在你自已的命令函数里加上下边两行
static void arxMFClab_MyCommand1(void)
 {
  // Add your code for command arxMFClab._MyCommand1 here
 Dialog1 dlg(CWnd::FromHandle(adsw_acadMainWnd()));
    int nReturnValue = dlg.DoModal();
 }

 

原创粉丝点击