实例介绍
VC2010结合ArcGIS Engine 开发
esri China 钊定及修订记录 版本 完成日期 编写/修订纪要编写者 备注 月日 刘宇 esri China 目录 使用 开发 建立MFC工程 采用 控件插入的方式 使用 开发 网上C#结合 ArcGis Engine的资料简直太多了,多的都无法形容,但是C++的却很少, 前一段时间不断的有人问在VC中如何开发 ArcGis Engine,说实话我几乎没怎么用过VC,在 学校用过,那已经是好多年的事情了,现在重温VC,不知道会是什么样的感觉,年末了,大家 都比较忙,我也是抽空,静下心来尝试的使用VC去开发,2个星期前在博客中发了一篇 http://www.gisall.com/html/63/151663-8220.html那个是没有界面的,也就是没有用到 MFC,访问量还不错,于是决定写一个MFC的小例子,界面这块,我一点都不擅长,习惯了 C#中的做法,在C#中就是拖个按钮,然后直接就在下面写功能,界面是一个体力活,更是一 个艺术活,像我这没有艺术细胞的人,估计这辈子都做不了漂亮的界面,所以下面的小例子, 大家也就不谈论界面了,哈哈。现在言归正传,开始我们的旅程。 esrI China 建立MFC工程 最近的莫板 NET Framework35排序法据默认值 Win32制台用程序 类型; Visual c 」创舞使片 Microsoft基础关库的应用 其t MF山程序 a visual c++ ATL Wn32项目 Visual c+- 空项百 Visual cl MFC 见试 其他项用型 Fc Visual c+ M ME Fc Visual Cl Windows体控件库 Visual c+ 位三 (\Users\Administrator\ Document s\ Vist ial Stdin >)1(\Prnjec ts\AFII est 确走 ⑤ esri china MAFC应用程序向导- MapMFC 欢迎使用MFC应用程序向导 这些是当前项月设置 应用浧序类型 选项卡式多文档界面(TDI) 无数据库克寺 复合文档支持 不支持复合文档 文档模板鹿性 可定义菜单栏和T具栏界 数据库支持 ·Ⅵ1:ua1SLdi2038应斤程序外观 Tisua1 studio项彐样式(具有资源管理器窗格、输岀窗格和属性窗格 用户界面巧能 車新启动卺哩岱受捋(堇新打川文档,应用程序恢复 高级功能 在任一窗口中单韦“完成”,宴受兰前设置 生成的类 创建顷目后,请参阅该项目的 readme.txt文件,了解有天项目能和所生成的文 件的信忘 区上下一步习完成取消 在这里可以选择单文档,也可以选择基于对话框的,我选择了单文档,如下图: ③ esri china MFC用程序向导- MapMFo 应用程序类型 概述 应用程序类型 项目类型: 应用程序类型 MFC标 复台义档支持 签八文档( s资源管埋器(x 文档梅板属性 口选项卡式文档(E visual stud:010) 数据库支持 ◎基一对话框(D (f邝icP(7) 用尸界面功能 视觉样式和颜色 言级功能 口使用ML对话框( 151t1 生成的类 ②多八页级烹档 启月视觉样式切英cc 文当/视图结构支持印v) 资源语 使用: 中文(简体,中回) 在共享nLL中使用MF( 在静态库中使用MFC(E 回使用T 区上步「步完成取消」 注意下面要选 CFormview,默认的是Ciew,关于这两个的区别看中间的这个词语就知道了, 如下图 esri China MFC应用程字内导- MapMFC 生成的类 概述 牛成的类Gi 立用衽序类型 C-ManMFt以i ManMFCan 复台文挡支持 CMapMFCo 档模板属性 MAinframe 数据库支持 类名 h文件 月广界面功能 apTC可ieW H△pMT 高级攻能 cpp 生成的类 CHerI MapMFCViev. cpp 区上一指「下一步习完成□取消 121添加类库 在工程上右键,属性找到目录的栏目,在包含那个选项中添加 安装目录下的 日录下的 还有 因为我的月录中有,添加后变成这个样子了,如下图: ⑤ esri china C: Pioyr arII Files %28x86%29\ CurrirmIunl Files\Art GIS\bir 继事的直: E:\Program Files %28x86%29\ArcGIS\Engine 10. 1\com E:\Program Files %28x86%29ArcGIs\Developerkitl0 1\include\ CPPAP 在C/C++选项的预处理中添加: ESRI WINDOWS,如下图: d C/C++ 常规 优化 预处理器 代码生成 语言 预编译头 翔出文件 刘览信息 高级 命令行 预处理定义 WIN3> WINDOWS DEBUG 学的值 ESRI WINDOWS UNICODE UNICODE AFXDLL 回从父级或项目默认设置继承① 云M>> 取消 esrI China 122引入头文件 在 stdfx h中引入 ArcSDK h这个目录文件,编译的时候 会看到下面的错误(不要怕,名称冲突而已) 93 error21:无法更改" ll ableDefinition"粪G∪ID 94 crror c2011: ITablcDcfinition":" struct"类型重定义 244 IntelliSen56声明侉饰符与前面的声六兼容 38errC3121:无法豆改“IRoW类的GUID 39 error c2011:"How":" struct"类型里定义 40 crror c2011:" CUrson":‘ struct"类型重定义 41 error c2 43 Intellisense!声明傍饰符与前蘸声兼 1 error C3121:无法更改" Progressclalog”类的GUD 22 error c3121:无法更改“ COmmand"类的GUID 23 error c2011:" Proyr essDialoy":"sruc"类型重定义 24 error20lI:“ COmmand":" STruct"粪彐更定V 21 error c1033:无法打廾类型库文件:"e: program tiles(x86) arcg is\engine101 bin\tocl barcontrcl 加类型库/D 245 IntclliScnsc:无法打开源文件"C:/ Uscrs/ Administrator / Documcnts/Visual Studio2010/ projacts/ AECTcs:Tct/ Debug/ToolbarCcntrol thh 4G IntelliSense: tTT iR * f"C /Users Administrator/Documents/Visual Studio 2010/Projects/AECTest/Test/Debug/TOCControl th 247 Intellisense:无法打源立科"C!/ Users/ Administrator/ Documents,∧ Visual studio2010 Projects/ AEC Test/Test/ Debug/ Scenecontrol 两种解决办法 ●重命名,找到相应的头文件,在 Import指令后添加 rename属性(关于这些属性大家 可以自己搜索下) #include esrisystem h Import " esrisystemuiolb raw interfaces only raw native types no name space named guids exclude( "ole HANDLE,'OLE COLOR","UINT Ptr") rename(" Command",esriICommand") rename("IProgressDialog, esriIProgressDialog") ●使用全名(命名空间+接口名称) include esrisystem h # esrisystemui olb raw interfaces only raw native types naned guids exclude("OLE HANDLE OLE COLOR, LINT PTR 其他的依次类推,注意如果重新命名之后,在程序中应使用新的名称,不然还是会出错。 123绑定许可和初始化许可,绑定许可是100之后的必要操作 bool CMainlrame:: AEinit (void 【实例截图】
【核心代码】
标签:
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论