社区
界面
帖子详情
MFC程序中添加一个对话框为啥没有对应的*dlg.cpp文件
wuxia2118
2018-10-12 03:06:30
MFC程序中添加一个对话框为啥没有对应的*dlg.cpp文件,我有时想对这个对话框中的控件进行一些操作,没有这个dlg.cpp文件都不知道代码往哪里写,有办法为对话框添加dlg.cpp文件文件吗
...全文
722
6
打赏
收藏
MFC程序中添加一个对话框为啥没有对应的*dlg.cpp文件
MFC程序中添加一个对话框为啥没有对应的*dlg.cpp文件,我有时想对这个对话框中的控件进行一些操作,没有这个dlg.cpp文件都不知道代码往哪里写,有办法为对话框添加dlg.cpp文件文件吗
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jacksonfan
2018-10-20
打赏
举报
回复
在资源视图里 双击添加的对话框 按照提示为对话框添加类,就会有.h .cpp
shen_wei
2018-10-18
打赏
举报
回复
双击新建的对话框资源,就会弹出来创建类的属性框。。。剩下的就是看着选择继承类。。
hurryboylqs
2018-10-13
打赏
举报
回复
在新添加的对话框资源里右键,添加类...,就可以关联一个MFC类了,他是不会自动给你生成的。
smwhotjay
2018-10-12
打赏
举报
回复
应该添加类 mfc类。 dlg类 才会生成dlg.cpp
zgl7903
2018-10-12
打赏
举报
回复
使用类向导添加 对话框类, 并指定对话框ID
绿色盒子
2018-10-12
打赏
举报
回复
你说的应该是添加了一个对话框资源吧,添加对话框资源之后需要双击对话框,在弹出的界面中填入类名才能生成CPP和.H文件
MFC
制作的MP3
使用
MFC
制作MP3打开vc6.0,建立如图所示
mfc
工程
文件
选择基于
对话框
的确定 删除所有空间,建立如图所示
对话框
属性如下: 播放 IDC_open;
添加
IDC_fileopen; 暂停 IDC_pause; 删除 IDC_del; 停止 IDC_stop; 退出 IDC_exit; 音乐名编辑框 IDC_filename; 音量控制滑块 IDC_SLIDER1; 音量控制编辑框 IDC_vol; 建立类向导
对应
如下: 在工程
文件
,右键,插入,bitmap位图 引入你想插入的背景图,必须是bmp格式的 进入你的
dlg
.
cpp
文件
在onpaint函数下
人脸相似度检测
MICROSOFT 基础类库: 人脸相似度检测
MFC
项目概述 =============================================================================== 应用
程序
向导已为您创建了这个 人脸相似度检测
MFC
应用
程序
。此应用
程序
不仅演示 Microsoft 基础类的基本使用方法,还可作为您编写应用
程序
的起点。 本
文件
概要介绍组成 人脸相似度检测
MFC
应用
程序
的每个
文件
的内容。 人脸相似度检测
MFC
.vcproj 这是使用应用
程序
向导生成的 VC++ 项目的主项目
文件
。 它包含生成该
文件
的 Visual C++ 的版本信息,以及有关使用应用
程序
向导选择的平台、配置和项目功能的信息。 人脸相似度检测
MFC
.h 这是应用
程序
的主要头
文件
。它包括其他项目特定的头
文件
(包括 Resource.h),并声明 C人脸相似度检测
MFC
App 应用
程序
类。 人脸相似度检测
MFC
.
cpp
这是包含应用
程序
类 C人脸相似度检测
MFC
App 的主要应用
程序
源
文件
。 人脸相似度检测
MFC
.rc 这是
程序
使用的所有 Microsoft Windows 资源的列表。它包括 RES 子目录
中
存储的图标、位图和光标。此
文件
可以直接在 Microsoft Visual C++
中
进行编辑。项目资源位于 2052
中
。 res\人脸相似度检测
MFC
.ico 这是用作应用
程序
图标的图标
文件
。此图标包括在主要资源
文件
人脸相似度检测
MFC
.rc
中
。 res\
MFC
.rc2 此
文件
包含不在 Microsoft Visual C++
中
进行编辑的资源。您应该将不可由资源编辑器编辑的所有资源放在此
文件
中
。 ///////////////////////////////////////////////////////////////////////////// 应用
程序
向导创建
一个
对话框
类: 人脸相似度检测
MFC
Dlg
.h,人脸相似度检测
MFC
Dlg
.
cpp
-
对话框
这些
文件
包含 C人脸相似度检测
MFC
Dlg
类。该类定义应用
程序
主
对话框
的行为。该
对话框
的模板位于 人脸相似度检测
MFC
.rc
中
,该
文件
可以在 Microsoft Visual C++
中
进行编辑。 ///////////////////////////////////////////////////////////////////////////// 其他功能: ActiveX 控件 应用
程序
包括对使用 ActiveX 控件的支持。 ///////////////////////////////////////////////////////////////////////////// 其他标准
文件
: StdAfx.h,StdAfx.
cpp
这些
文件
用于生成名为 人脸相似度检测
MFC
.pch 的预编译头 (PCH)
文件
和名为 StdAfx.obj 的预编译类型
文件
。 Resource.h 这是标准头
文件
,它定义新的资源 ID。 Microsoft Visual C++ 读取并更新此
文件
。 人脸相似度检测
MFC
.manifest 应用
程序
清单
文件
供 Windows XP 用来描述应用
程序
对特定版本并行
程序
集的依赖性。加载
程序
使用此 信息从
程序
集缓存加载适当的
程序
集或 从应用
程序
加载私有信息。应用
程序
清单可能为了重新分发而作为 与应用
程序
可执行
文件
安装在相同
文件
夹
中
的外部 .manifest
文件
包括, 也可能以资源的形式包括在该可执行
文件
中
。 ///////////////////////////////////////////////////////////////////////////// 其他注释: 应用
程序
向导使用“TODO:”指示应
添加
或自定义的源代码部分。 如果应用
程序
在共享的 DLL
中
使用
MFC
,则需要重新发布这些
MFC
DLL;如果应用
程序
所用的语言与操作系统的当前区域设置不同,则还需要重新发布
对应
的本地化资源
MFC
90XXX.DLL。有关这两个主题的更多信息,请参见 MSDN 文档
中
有关 Redistributing Visual C++ applications (重新发布 Visual C++ 应用
程序
)的章节。
ObjectARX for AutoCAD 2007(ObjectARX2007)
ObjectARX 1. ObjectARX的介绍: ObjectARX是AutoDesk公司针对AutoCAD平台上的二次开发而推出的
一个
开发软件包,它提供了以C++为基础的面向对象的开发环境及应用
程序
接口,能真正快速的访问AutoCAD图形数据库。 与以往的 AutuCAD 二次开发工具 AutoLISP 和ADS不同,ObjectARX应用
程序
是
一个
DLL(动态链接库),共享AutoCAD的地址空间,对AutoCAD进行直接函数调用。所以,使用ARX编程的函数的执行速度得以大大提高。ARX 类库采用了标准的C++类库的封装形式,这也大大提高了
程序
员编程的可靠度和效率。 ObjectARX目前最新的版本是ObjectARX2009,它在原有ObjectARX的基础上,特别增加了XML的支持。XML是可扩展标记语言(eXtensible Markup Language)。它是应用软件与Internet的接口。通过支持XML,为ObjectARX开发网络协作应用提供了有力的支持。 2. 开发环境的设置: 运用ObjectARX进行二次开发,必须首先设置好ObjectARX的开发环境。目前常用的开发环境是Microsoft Visual C++ 6.0。同时,还需要安装ObjectARX SDK,ObjectARX SDK可以在AutoDesk公司的网站上免费下载。不同的AutoCAD版本
对应
相应的ObjectARX SDK的版本,目前常用的是ObjectARX SDK for AutoCADR14和ObjectARX SDK for AutoCAD2000i。这两个开发工具在设置上略有不同,将进行对比介绍。 安装好VC++和ObjectARX后,就可以开始设置开发环境了。 1) 设置INC和LIB
文件
寻找路径 INC和LIB
文件
寻找路径为VC++的环境参数,设置一次即可,对以后的所有项目均有效。 选择 Tools→Options …,出现Option
对话框
,选择Directories页,在Show Directories for
中
选择Include files,然后在Directories
中
加上ARX的INC目录路径c:\objectarx\inc(假定ARX的开发工具在c:\objectarx\
中
)。 在Show Directories for
中
选择Library files,然后在Directories
中
加上ARX的LIB目录路径c:\objectarx\lib(假定ARX的开发工具在c:\objectarx\
中
)。 2) 建立项目并设置编译环境 一般来说,开发的ObjectARX应用
程序
都需要支持
MFC
(如采用
对话框
等),因此,我们可以直接建立支持
MFC
的ObjectARX开发项目。每个项目均应设置编译环境,一般项目的编译环境可以有两个设置,分别为发布版本(Win32 Release)和调试版本(Win32 Debug)。在本节里,介绍的是发布版本的设置,而调试版本的设置将在下一节介绍。ObjectARX SDK for AutoCADR14和ObjectARX SDK for AutoCAD2000i在设置上面存在着差别,下面分别进行介绍。 对于ObjectARX SDK for ACADR14 a. 选择 File→New ,选择projects页→
MFC
AppWizard,给定项目名(helloR14)及位置,选OK,在DLL type
中
选择
MFC
Extension DLL(using share
MFC
DLL),再选择Finish。建立项目。 b. 选择Build→Set Active Configration…→helloR14 Win32 Release,然后选OK。 c. 选择Project→Setting,出现Project Settings
对话框
,开始设置编译环境。 d. General
中
,Microsoft Foundation Classes选择Use
MFC
in a Share DLL。 e. C/C++→Code Generation
中
,Use run-time library选择Multithreaded DLL。 f. C/C++→Preprocessor
中
,Preprocessor definitions填入ACRXAPP,RADPACK,WIN32,NDEBUG,_WINDOWS。 g. Link→General
中
,Output file Name填入helloR14.arx。 h. Link→Input
中
,Object/library modules
添加
Acad.lib acedapi.lib rxapi.lib libacge.lib库
文件
名。 i. Lin
ObjectARX for AutoCAD 2008 (32-bit)
ObjectARX 1. ObjectARX的介绍: ObjectARX是AutoDesk公司针对AutoCAD平台上的二次开发而推出的
一个
开发软件包,它提供了以C++为基础的面向对象的开发环境及应用
程序
接口,能真正快速的访问AutoCAD图形数据库。 与以往的 AutuCAD 二次开发工具 AutoLISP 和ADS不同,ObjectARX应用
程序
是
一个
DLL(动态链接库),共享AutoCAD的地址空间,对AutoCAD进行直接函数调用。所以,使用ARX编程的函数的执行速度得以大大提高。ARX 类库采用了标准的C++类库的封装形式,这也大大提高了
程序
员编程的可靠度和效率。 ObjectARX目前最新的版本是ObjectARX2009,它在原有ObjectARX的基础上,特别增加了XML的支持。XML是可扩展标记语言(eXtensible Markup Language)。它是应用软件与Internet的接口。通过支持XML,为ObjectARX开发网络协作应用提供了有力的支持。 2. 开发环境的设置: 运用ObjectARX进行二次开发,必须首先设置好ObjectARX的开发环境。目前常用的开发环境是Microsoft Visual C++ 6.0。同时,还需要安装ObjectARX SDK,ObjectARX SDK可以在AutoDesk公司的网站上免费下载。不同的AutoCAD版本
对应
相应的ObjectARX SDK的版本,目前常用的是ObjectARX SDK for AutoCADR14和ObjectARX SDK for AutoCAD2000i。这两个开发工具在设置上略有不同,将进行对比介绍。 安装好VC++和ObjectARX后,就可以开始设置开发环境了。 1) 设置INC和LIB
文件
寻找路径 INC和LIB
文件
寻找路径为VC++的环境参数,设置一次即可,对以后的所有项目均有效。 选择 Tools→Options …,出现Option
对话框
,选择Directories页,在Show Directories for
中
选择Include files,然后在Directories
中
加上ARX的INC目录路径c:\objectarx\inc(假定ARX的开发工具在c:\objectarx\
中
)。 在Show Directories for
中
选择Library files,然后在Directories
中
加上ARX的LIB目录路径c:\objectarx\lib(假定ARX的开发工具在c:\objectarx\
中
)。 2) 建立项目并设置编译环境 一般来说,开发的ObjectARX应用
程序
都需要支持
MFC
(如采用
对话框
等),因此,我们可以直接建立支持
MFC
的ObjectARX开发项目。每个项目均应设置编译环境,一般项目的编译环境可以有两个设置,分别为发布版本(Win32 Release)和调试版本(Win32 Debug)。在本节里,介绍的是发布版本的设置,而调试版本的设置将在下一节介绍。ObjectARX SDK for AutoCADR14和ObjectARX SDK for AutoCAD2000i在设置上面存在着差别,下面分别进行介绍。 对于ObjectARX SDK for ACADR14 a. 选择 File→New ,选择projects页→
MFC
AppWizard,给定项目名(helloR14)及位置,选OK,在DLL type
中
选择
MFC
Extension DLL(using share
MFC
DLL),再选择Finish。建立项目。 b. 选择Build→Set Active Configration…→helloR14 Win32 Release,然后选OK。 c. 选择Project→Setting,出现Project Settings
对话框
,开始设置编译环境。 d. General
中
,Microsoft Foundation Classes选择Use
MFC
in a Share DLL。 e. C/C++→Code Generation
中
,Use run-time library选择Multithreaded DLL。 f. C/C++→Preprocessor
中
,Preprocessor definitions填入ACRXAPP,RADPACK,WIN32,NDEBUG,_WINDOWS。 g. Link→General
中
,Output file Name填入helloR14.arx。 h. Link→Input
中
,Object/library modules
添加
Acad.lib acedapi.lib rxapi.lib libacge.lib库
文件
名。 i. Link→Output
中
,Base address填入0xc10000,Entry-point symbol
中
填入DllEntryPoing@12。 j. 点击OK退出Project Settings
对话框
。 k.
添加
HelloR14.
cpp
主
程序
,为了使ARX支持
MFC
,把 HelloR14.
cpp
的内容直接替换为ObjectARX/UTILS/
MFC
EXTRAS/目录下ARX
MFC
TMPL.
CPP
的内容,其
中
包含了
MFC
所需的支持函数。同时加入公用头
文件
resourcehelper.h到项目
中
去,这个头
文件
也可以在上面的目录找到。 l.
添加
注册命令,在 initApp ()函数
中
,用 acedRegCmds->addCommand()册新的AutoCAD命令。 m.
添加
HelloR14.def定义
文件
,EXPORTS下加入 acrxEntryPoint acrxGetApiVersion n.
对话框
的可以采用一般VC++的
对话框
,继承 CDialog类。 对于ObjectARX SDK for ACAD2000i a. 选择 File→New ,选择projects页→
MFC
AppWizard,给定项目名(hello2000)及位置,选OK,在DLL type
中
选择
MFC
Extension DLL(using share
MFC
DLL),再选择Finish。建立项目。 b. 选择Build→Set Active Configration…→hello2000 Win32 Release,然后选OK。 c. 选择Project→Setting,出现Project Settings
对话框
,开始设置编译环境。 d. C/C++→Code Generation
中
,Use run-time library选择Multithreaded DLL。 e. C/C++→Preprocessor
中
,Preprocessor definitions填入ACRXAPP, WIN32,NDEBUG,_WINDOWS,_WINDLL,_AFXDLL,AFXEXT。 f. Link→General
中
,Output file Name填入hello2000.arx。 g. Link→Input
中
,Object/library modules
添加
acge15.lib acad.lib acedapi.lib acrx15.lib acdb15.lib acutil15.lib rxapi.lib acui15.lib adui15.lib库
文件
名。 h. Link→Output
中
,Base address填入0xc1000000。 i. 点击OK退出Project Settings
对话框
。 j.
添加
Hello2000.
cpp
主
程序
,为了使ARX支持
MFC
,需要把 Hello2000.
cpp
的内容直接替换为ObjectARX/DOCSAMPS/
MFC
SAMPS/DYNAMIC/目录下ARX
MFC
TMPL.
CPP
的内容,其
中
包含了
MFC
所需的支持函数。同时加入两个公用头
文件
resourcehelper.h和stdafx.h到项目
中
去,这两个头
文件
也可以在上面的目录找到。 k.
添加
注册命令,在 initApp ()函数
中
,用 acedRegCmds->addCommand()新的AutoCAD命令。 l. 修改Hello2000.def
文件
,在EXPORTS下加入 acrxEntryPoint acrxGetApiVersion m.
对话框
采用的是ObjectARX提供的
对话框
类型,采用
MFC
UI提供的相关类。类的头
文件
为 acui.h和adui.h。使用时可以先按照一般VC++的
对话框
建立
对话框
,然后修改该
对话框
继承的类为CAcUiDialog。可以通过查找和替换,直接把项目
中
的CDialog全部替换为CAcUiDialog。在引用该
对话框
时用采用下面的方法,如: Hello
Dlg
Hello2000
dlg
(CWnd::FromHandle(adsw_acadMainWnd())) 3) 项目的加载、运行和卸载 项目编译完成后,就可以在AutoCAD
中
加载运行了。加载ObjectARX
程序
,可以选择Tools→Load Application…,然后选择相应的 arx
文件
,点击Load即可。 运行ObjectARX
程序
则通过键入
程序
中
所注册的命令进行调用。 需要卸载
程序
时,可以选择Tools→Load Application…,然后选择相应的 arx
文件
,点击Unload即可。也可以直接键入(arxunload “ARX
程序
名 ” )。 3. 调试技巧
程序
编写
中
需要进行大量的调试工作,ObjectARX
程序
的调试可以跟普通的VC++
程序
一样通过设置断点来跟踪,同时,还有一些ObjectARX独特的调试技巧。 1) 通过断点跟踪进行调试 ObjectARX的跟踪调试需要首先设置调试版本(Win32 Debug)的编译环境。不同版本的调试环境设置也略有不同。 对于ObjectARX SDK for ACADR14 a. 选择Build→Set Active Configration…→helloR14 Win32 Debug,然后选OK。 b. 选择Project→Setting,出现Project Settings
对话框
,开始设置编译环境。 c. General
中
,Microsoft Foundation Classes选择Use
MFC
in a Share DLL。 d. Debug→General
中
,Executable for debug session
中
选择AutocadR14运行
程序
的位置,如C:\Program Files\AutoCAD R14\acad.exe。 e. C/C++→Code Generation
中
,Use run-time library选择Debug Multithreaded DLL。 f. C/C++→Preprocessor、Link→General、Link→Input、Link→Output的设置均同发布版本(Win32 Release) g. 点击OK退出Project Settings
对话框
。 h. 编译完成后,点击F9在相应位置设置断点。 i. 点击F5开始跟踪调试,调试开始时会自动打开AutoCAD,加载运行ARX后,到达断点的位置,进入调试界面,可以查询
程序
中
变量的当前值,点击F5可以继续调试。 j.
程序
运行完成后,退出AutoCAD,结束调试。 对于ObjectARX SDK for 2000i,调试环境的设置与R14的基本相同,主要的区别在于第e 步
中
,Use run-time library需要选择Multithreaded DLL,否则会出现DLL的版本问题,而导致ARX无法加载。 2) 其他调试技巧 ObjectARX的
程序
由于是运行在AutoCAD图形支撑环境下的,
程序
中
很多元素都是
对应
着图形
中
的相应位置,因此,在调试的时候,除了通过设置断点跟踪变量外,还可以通过图形显示来观察变量。 但是,ObjectARX在AutoCAD里面进行绘制时,需要与AutoCAD数据库进行交互,代码比较长,直接在
程序
里面写入容易造成混乱。因此,可以利用我们开发的ObjectARX基本绘图函数库(Plot1和Plot2)。该函数 库提供了大量的图形绘制函数、文字输出函数以及图形编辑函数,调用时只需一行代码就可以完成,十分方便。其
中
常用的函数有以下这些: l 绘图相关函数 createLine 画直线 createDimR 倾斜尺寸标注 createDim 水平或竖直尺寸标注 createPoint 创建点 createCircle 画圆 createArc 画圆弧 createText 写字符串 createTextN 写 一整数 createTextR 写 一实数 createPline 画等宽多义线 createHatch 区域填充 insertBlock 插入图块 l 图形编辑相关函数 eraseByName 按实体的 ads_name 删除实体 eraseById 按实体的ID删除实体 changeLayerByName 按实体的 ads_name 改变实体的层 changeColorByName 按实体的 ads_name 改变实体的颜色 changeTextByName 按实体的 ads_name 改变实体字符内容 有了这个函数库,就可以通过
添加
辅助线和辅助图元、显示不同位置的变量值、改变图元的颜色等调试方法进行
程序
的调试了。
ObjectARX for AutoCAD 2008 (64-bit)
ObjectARX 1. ObjectARX的介绍: ObjectARX是AutoDesk公司针对AutoCAD平台上的二次开发而推出的
一个
开发软件包,它提供了以C++为基础的面向对象的开发环境及应用
程序
接口,能真正快速的访问AutoCAD图形数据库。 与以往的 AutuCAD 二次开发工具 AutoLISP 和ADS不同,ObjectARX应用
程序
是
一个
DLL(动态链接库),共享AutoCAD的地址空间,对AutoCAD进行直接函数调用。所以,使用ARX编程的函数的执行速度得以大大提高。ARX 类库采用了标准的C++类库的封装形式,这也大大提高了
程序
员编程的可靠度和效率。 ObjectARX目前最新的版本是ObjectARX2009,它在原有ObjectARX的基础上,特别增加了XML的支持。XML是可扩展标记语言(eXtensible Markup Language)。它是应用软件与Internet的接口。通过支持XML,为ObjectARX开发网络协作应用提供了有力的支持。 2. 开发环境的设置: 运用ObjectARX进行二次开发,必须首先设置好ObjectARX的开发环境。目前常用的开发环境是Microsoft Visual C++ 6.0。同时,还需要安装ObjectARX SDK,ObjectARX SDK可以在AutoDesk公司的网站上免费下载。不同的AutoCAD版本
对应
相应的ObjectARX SDK的版本,目前常用的是ObjectARX SDK for AutoCADR14和ObjectARX SDK for AutoCAD2000i。这两个开发工具在设置上略有不同,将进行对比介绍。 安装好VC++和ObjectARX后,就可以开始设置开发环境了。 1) 设置INC和LIB
文件
寻找路径 INC和LIB
文件
寻找路径为VC++的环境参数,设置一次即可,对以后的所有项目均有效。 选择 Tools→Options …,出现Option
对话框
,选择Directories页,在Show Directories for
中
选择Include files,然后在Directories
中
加上ARX的INC目录路径c:\objectarx\inc(假定ARX的开发工具在c:\objectarx\
中
)。 在Show Directories for
中
选择Library files,然后在Directories
中
加上ARX的LIB目录路径c:\objectarx\lib(假定ARX的开发工具在c:\objectarx\
中
)。 2) 建立项目并设置编译环境 一般来说,开发的ObjectARX应用
程序
都需要支持
MFC
(如采用
对话框
等),因此,我们可以直接建立支持
MFC
的ObjectARX开发项目。每个项目均应设置编译环境,一般项目的编译环境可以有两个设置,分别为发布版本(Win32 Release)和调试版本(Win32 Debug)。在本节里,介绍的是发布版本的设置,而调试版本的设置将在下一节介绍。ObjectARX SDK for AutoCADR14和ObjectARX SDK for AutoCAD2000i在设置上面存在着差别,下面分别进行介绍。 对于ObjectARX SDK for ACADR14 a. 选择 File→New ,选择projects页→
MFC
AppWizard,给定项目名(helloR14)及位置,选OK,在DLL type
中
选择
MFC
Extension DLL(using share
MFC
DLL),再选择Finish。建立项目。 b. 选择Build→Set Active Configration…→helloR14 Win32 Release,然后选OK。 c. 选择Project→Setting,出现Project Settings
对话框
,开始设置编译环境。 d. General
中
,Microsoft Foundation Classes选择Use
MFC
in a Share DLL。 e. C/C++→Code Generation
中
,Use run-time library选择Multithreaded DLL。 f. C/C++→Preprocessor
中
,Preprocessor definitions填入ACRXAPP,RADPACK,WIN32,NDEBUG,_WINDOWS。 g. Link→General
中
,Output file Name填入helloR14.arx。 h. Link→Input
中
,Object/library modules
添加
Acad.lib acedapi.lib rxapi.lib libacge.lib库
文件
名。 i. Link→Output
中
,Base address填入0xc10000,Entry-point symbol
中
填入DllEntryPoing@12。 j. 点击OK退出Project Settings
对话框
。 k.
添加
HelloR14.
cpp
主
程序
,为了使ARX支持
MFC
,把 HelloR14.
cpp
的内容直接替换为ObjectARX/UTILS/
MFC
EXTRAS/目录下ARX
MFC
TMPL.
CPP
的内容,其
中
包含了
MFC
所需的支持函数。同时加入公用头
文件
resourcehelper.h到项目
中
去,这个头
文件
也可以在上面的目录找到。 l.
添加
注册命令,在 initApp ()函数
中
,用 acedRegCmds->addCommand()册新的AutoCAD命令。 m.
添加
HelloR14.def定义
文件
,EXPORTS下加入 acrxEntryPoint acrxGetApiVersion n.
对话框
的可以采用一般VC++的
对话框
,继承 CDialog类。 对于ObjectARX SDK for ACAD2000i a. 选择 File→New ,选择projects页→
MFC
AppWizard,给定项目名(hello2000)及位置,选OK,在DLL type
中
选择
MFC
Extension DLL(using share
MFC
DLL),再选择Finish。建立项目。 b. 选择Build→Set Active Configration…→hello2000 Win32 Release,然后选OK。 c. 选择Project→Setting,出现Project Settings
对话框
,开始设置编译环境。 d. C/C++→Code Generation
中
,Use run-time library选择Multithreaded DLL。 e. C/C++→Preprocessor
中
,Preprocessor definitions填入ACRXAPP, WIN32,NDEBUG,_WINDOWS,_WINDLL,_AFXDLL,AFXEXT。 f. Link→General
中
,Output file Name填入hello2000.arx。 g. Link→Input
中
,Object/library modules
添加
acge15.lib acad.lib acedapi.lib acrx15.lib acdb15.lib acutil15.lib rxapi.lib acui15.lib adui15.lib库
文件
名。 h. Link→Output
中
,Base address填入0xc1000000。 i. 点击OK退出Project Settings
对话框
。 j.
添加
Hello2000.
cpp
主
程序
,为了使ARX支持
MFC
,需要把 Hello2000.
cpp
的内容直接替换为ObjectARX/DOCSAMPS/
MFC
SAMPS/DYNAMIC/目录下ARX
MFC
TMPL.
CPP
的内容,其
中
包含了
MFC
所需的支持函数。同时加入两个公用头
文件
resourcehelper.h和stdafx.h到项目
中
去,这两个头
文件
也可以在上面的目录找到。 k.
添加
注册命令,在 initApp ()函数
中
,用 acedRegCmds->addCommand()新的AutoCAD命令。 l. 修改Hello2000.def
文件
,在EXPORTS下加入 acrxEntryPoint acrxGetApiVersion m.
对话框
采用的是ObjectARX提供的
对话框
类型,采用
MFC
UI提供的相关类。类的头
文件
为 acui.h和adui.h。使用时可以先按照一般VC++的
对话框
建立
对话框
,然后修改该
对话框
继承的类为CAcUiDialog。可以通过查找和替换,直接把项目
中
的CDialog全部替换为CAcUiDialog。在引用该
对话框
时用采用下面的方法,如: Hello
Dlg
Hello2000
dlg
(CWnd::FromHandle(adsw_acadMainWnd())) 3) 项目的加载、运行和卸载 项目编译完成后,就可以在AutoCAD
中
加载运行了。加载ObjectARX
程序
,可以选择Tools→Load Application…,然后选择相应的 arx
文件
,点击Load即可。 运行ObjectARX
程序
则通过键入
程序
中
所注册的命令进行调用。 需要卸载
程序
时,可以选择Tools→Load Application…,然后选择相应的 arx
文件
,点击Unload即可。也可以直接键入(arxunload “ARX
程序
名 ” )。 3. 调试技巧
程序
编写
中
需要进行大量的调试工作,ObjectARX
程序
的调试可以跟普通的VC++
程序
一样通过设置断点来跟踪,同时,还有一些ObjectARX独特的调试技巧。 1) 通过断点跟踪进行调试 ObjectARX的跟踪调试需要首先设置调试版本(Win32 Debug)的编译环境。不同版本的调试环境设置也略有不同。 对于ObjectARX SDK for ACADR14 a. 选择Build→Set Active Configration…→helloR14 Win32 Debug,然后选OK。 b. 选择Project→Setting,出现Project Settings
对话框
,开始设置编译环境。 c. General
中
,Microsoft Foundation Classes选择Use
MFC
in a Share DLL。 d. Debug→General
中
,Executable for debug session
中
选择AutocadR14运行
程序
的位置,如C:\Program Files\AutoCAD R14\acad.exe。 e. C/C++→Code Generation
中
,Use run-time library选择Debug Multithreaded DLL。 f. C/C++→Preprocessor、Link→General、Link→Input、Link→Output的设置均同发布版本(Win32 Release) g. 点击OK退出Project Settings
对话框
。 h. 编译完成后,点击F9在相应位置设置断点。 i. 点击F5开始跟踪调试,调试开始时会自动打开AutoCAD,加载运行ARX后,到达断点的位置,进入调试界面,可以查询
程序
中
变量的当前值,点击F5可以继续调试。 j.
程序
运行完成后,退出AutoCAD,结束调试。 对于ObjectARX SDK for 2000i,调试环境的设置与R14的基本相同,主要的区别在于第e 步
中
,Use run-time library需要选择Multithreaded DLL,否则会出现DLL的版本问题,而导致ARX无法加载。 2) 其他调试技巧 ObjectARX的
程序
由于是运行在AutoCAD图形支撑环境下的,
程序
中
很多元素都是
对应
着图形
中
的相应位置,因此,在调试的时候,除了通过设置断点跟踪变量外,还可以通过图形显示来观察变量。 但是,ObjectARX在AutoCAD里面进行绘制时,需要与AutoCAD数据库进行交互,代码比较长,直接在
程序
里面写入容易造成混乱。因此,可以利用我们开发的ObjectARX基本绘图函数库(Plot1和Plot2)。该函数 库提供了大量的图形绘制函数、文字输出函数以及图形编辑函数,调用时只需一行代码就可以完成,十分方便。其
中
常用的函数有以下这些: l 绘图相关函数 createLine 画直线 createDimR 倾斜尺寸标注 createDim 水平或竖直尺寸标注 createPoint 创建点 createCircle 画圆 createArc 画圆弧 createText 写字符串 createTextN 写 一整数 createTextR 写 一实数 createPline 画等宽多义线 createHatch 区域填充 insertBlock 插入图块 l 图形编辑相关函数 eraseByName 按实体的 ads_name 删除实体 eraseById 按实体的ID删除实体 changeLayerByName 按实体的 ads_name 改变实体的层 changeColorByName 按实体的 ads_name 改变实体的颜色 changeTextByName 按实体的 ads_name 改变实体字符内容 有了这个函数库,就可以通过
添加
辅助线和辅助图元、显示不同位置的变量值、改变图元的颜色等调试方法进行
程序
的调试了。
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章