第7章 使用CatalogWord格式文档下载.docx

上传人:b****1 文档编号:3135192 上传时间:2023-05-01 格式:DOCX 页数:80 大小:1.90MB
下载 相关 举报
第7章 使用CatalogWord格式文档下载.docx_第1页
第1页 / 共80页
第7章 使用CatalogWord格式文档下载.docx_第2页
第2页 / 共80页
第7章 使用CatalogWord格式文档下载.docx_第3页
第3页 / 共80页
第7章 使用CatalogWord格式文档下载.docx_第4页
第4页 / 共80页
第7章 使用CatalogWord格式文档下载.docx_第5页
第5页 / 共80页
第7章 使用CatalogWord格式文档下载.docx_第6页
第6页 / 共80页
第7章 使用CatalogWord格式文档下载.docx_第7页
第7页 / 共80页
第7章 使用CatalogWord格式文档下载.docx_第8页
第8页 / 共80页
第7章 使用CatalogWord格式文档下载.docx_第9页
第9页 / 共80页
第7章 使用CatalogWord格式文档下载.docx_第10页
第10页 / 共80页
第7章 使用CatalogWord格式文档下载.docx_第11页
第11页 / 共80页
第7章 使用CatalogWord格式文档下载.docx_第12页
第12页 / 共80页
第7章 使用CatalogWord格式文档下载.docx_第13页
第13页 / 共80页
第7章 使用CatalogWord格式文档下载.docx_第14页
第14页 / 共80页
第7章 使用CatalogWord格式文档下载.docx_第15页
第15页 / 共80页
第7章 使用CatalogWord格式文档下载.docx_第16页
第16页 / 共80页
第7章 使用CatalogWord格式文档下载.docx_第17页
第17页 / 共80页
第7章 使用CatalogWord格式文档下载.docx_第18页
第18页 / 共80页
第7章 使用CatalogWord格式文档下载.docx_第19页
第19页 / 共80页
第7章 使用CatalogWord格式文档下载.docx_第20页
第20页 / 共80页
亲,该文档总共80页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第7章 使用CatalogWord格式文档下载.docx

《第7章 使用CatalogWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《第7章 使用CatalogWord格式文档下载.docx(80页珍藏版)》请在冰点文库上搜索。

第7章 使用CatalogWord格式文档下载.docx

当你启动ArcCatalog时用所用的查看方式就是这样。

元文件查看显示所有与当前选择相关的元文件。

在默认是,格式来自于ESRI方式,当它们也能被指定。

预览是在任何时刻都可以起作用的,默认时,预览能选择那种数据是最自然适合显示的。

例如,选定了一个Shapefile,预览能默认的显示他的地图。

然而,在预览下边的菜单能使你不顾忌这些,是你能够选择自己喜欢的预览形式。

体系结构

ArcCatalog对象模型很好的显示实际的用户接口经历。

应用的运行由GxAPPlication对象展现。

它主要的作用酒食处理三个主要的接口元素。

它也能够带表用户指定和增加标准换得成员。

在实际的应用当中能够用ArcCatalog操作所有的对象,并对它们执行各种操作。

对象模型包括三种独立但相互联系得功能,对象等级,查看等级,应用等级。

对象等级

对象等级在对象模型的底层,GxObjects代表单独的数据项目,它们出现在树查看和内容查看中。

不同类型的GxObjects对象用于不同的数据。

例如,Gxlayer对象代表图层文件,而GxMap对象代表压缩的地图文档。

在GxObjects层次中有两个对象很重要:

目录对象(GxCatalog),当前选择(GxSelection).

7.1.2ArcCatalog对象模型的概览                            

目录代表实际的数据树,像显示在树查看当中的那样。

从GxCatalog对象中可以从对它们的后继来操作它们,但更多的时候你会用到选择,包括俩部分:

一个地点和一组选择的对象。

当在树查看中选中一个项目时,就变成了选择的地点。

在内容中选中的项目则变成了那个地点对应得对象,在ArcCatalog中的操作都是针对当前的选定的。

对象是可以扩展的。

加入定义的GxObjexts,定义至少支持IGxobjects的对象。

你也需要写一个GxObjectsFactory来说明怎么来产生你定义的GxObjexts。

查看等级

查看等级时中间层次。

它能以不同的方式查看单独的GxObjects类。

它们代表不容的GxObjects接口。

不同的GxViews有不同的任务。

例如,快速的查看数据,可能会用到GxContentsView,它有不同的显示方法。

当用某些属性来查找数据时则用GxDocumentation查看。

GxGeographic查看在打算用的数据时特别的有用。

ArcCatalog给GxView提供了一个很好的框架。

树查看总是可以执行的,它主要的操作工具就是ArcCatalog来建立当前的选择的位置。

位置选择管理由GxView显示的其他对象。

ArcCatalog有两种方法来显示其他的查看:

标签查看或预览。

标签查看能在主ArcCatalog窗口中显示各个单独的标签。

当默认时有三种预览:

内容,预览,元数据。

然而开发者能添加他想要的方式。

预览能以有预览标签的结合箱子的形式显示,通常用来查看静态数据。

不论选择那种选择查看哪种方式,GxView的操作都是不用影响的。

在两种查看方式上仅有不大的区别。

标签查看方式能手工的选定。

然而预览自动选择是决定于当前所选定的对象的。

如果预览是激活的,当用户改变选择的位置,ArcCatalog使用IGxView:

:

Applies方式询问注册的预览是否能处理选定的类。

如果当前的预览能够支持,第一个查看方式就说明它能够支持选定的方式为激活状态。

当然用户之后又能选择其他的方式,当选择改变是自动改变逻辑也会随之改变。

应用等级

ArcCatalog的最高等级application是由GxApplication控制的,它与菜单和工具条相联系,它操作GxCatalog的生命周期,显示和操作GxViews。

7.1.3GxCatalog初始化和对象删除                             

当应用启动时,AtcCatalog生成GxDiskConnection对象来连接和安装目录树。

如果是首次启动ArcCatalog,它会在你的本地驱动加入文件联系。

此时ArcCatalog生成和加入在CATID_GxRootObjects中注册的GxObjects对象。

几个根对象是默认的提供的,数据库连接文件夹,坐标系统文件夹,地图编码服务文件夹,因特网服务文件夹,查询结果文件。

代表地,这些根对象通常都是作为其他对象的容器,因此执行IGxObjectContainer但这并不是必须的。

数据转移

ArcCatalog用户使用标准的OLE数据转换机制来拖动、放弃、复制、粘贴,它常起到操作源,目的,或者同时起到这两个作用。

为了充分理解drag/drop,copy/paste是怎么工作的,最好观察当他同时既是源又是目的时候再ArcCatalog中的行为。

ArcCatalog中的DRAG/DROP操作。

ARCCATALOG中的DRAG/DROP操作

当检测到DRAG操作时,ArcCatalog就会将选定的GxObjects打包到数据对象并发送至OLE。

ArcCatalog就会按照如下方式将选定的GxObjects打包。

首先,选定的GxObjects被鉴别。

每一个选中的GxObjects会从Internal-NameObjects成员得到一个内部的名称。

不能返回的成员将不会被考虑。

所有在内部得到命名的对象都会形成通向OLE的数据流。

为了保证能通向这个流,ArcCatalog声称NameFactoryutility对象,然后调用PackageNames方法。

这个数据对象然后传送至OLE。

如果操作是drag/drop,当drag发生的时候OLE会产生一个模型时间循环。

在循环运行时,OLE会检测鼠标的位置。

当鼠标键入在drop中注册过的bWnd,OLE就调用IDropTarge接口,先是DragEnter,然后是DragOver,如有必要还会调用DragLeage。

如果用户释放bWnd,OLE会调用Drop方法。

因为在这个例子中ArcCatalog是数据转换得目的地址,ArcCatalog从OLE中处理IDropTarget请求。

其操作如下,ArcCatalog检测GxObjects的请求是否有效,任何支持IGxPasteTarget的对象都会考虑,接口如下:

interfaceIGxPasteTarget:

FunctionCanPaste(namesasIEnumName,moveOperationasBoolean)asBoolean

FunctionPaste (namesasIEnumName,moveOperationasBoolean)asBoolean

ArcCatalog将drag数据转换成更好用的形式,命名为枚举的Name对象(IEnumName)。

然后调用CanPaste决定drop目标是否能够接受现在的名字。

作为反应,潜在的枚举类型会列举一系列的名字看能否处理它们,例如,GxDatabase对象会确保Name对象会支持IFileName。

当目标的GxObject决定能接受drop,它就返回真。

如果数据不能支持,GxObject必须支持drag操作是否代表移动或复制,通过设置moveOperation参数为真或假来实现。

当用户释放时标时,OLE调用IDropTarget:

Drop,ArcCatalog通过调用IGxpasteTarget:

Paste方法来响应。

它也能通过返回真或假来显示操作是否是移动或是复制。

就这一点而言,GxObjects必须传输实际的数据。

当moveOpoeration默认为真时,GxObjects也需要显示实际的移动是否执行。

它通过设置参数为真或假来表达。

最终,当传输成功则返回值为真,否则为假。

在ARCCATALOG中的复制/粘贴操作

当操作不是drag/drop,而是复制/粘贴时,情况也十分类似,仅有很小的一部分不尽相同。

当复制启动时,ArcCatalog将选中的GxObjects打包到数据对象。

无论当前的选定什么时候改变,ArcCatalog都能够检查paste命令是否能够执行,

通过在当前位置调用IGxPasteTarget:

CanPaste。

所需的行为就是对IGxPasteTarget的执行,这取决于drag/drop的情况,如果用户选择粘贴命令,ArcCatalog就在当前的位置调用粘贴的方法。

 

7.2GxView对象,GxApplication和相关的对象

7.2.1GxApplication组件类                                   

GxApplication代表可以执行的ArcCatalog对象。

它可以生成和管理用户的接口,树查看,标签查看,菜单和工具,通过生成GxCatalog根对象来初始化Catalog树。

典型的,开发者会从GxApplication来开始对对象类的向导。

所有的命令和工具都能在他们的OnCreate方法中来传递对GxApplication的引用。

GxApplication支持IApplication和IGxApplication。

IApplication对于ArcMap和ArcCatalog都是常用的,在第三章中详细的讨论过。

IGxApplication接口是ArcCatalog所独有的,通常用于控制它某个方面的行为。

比如,通过IGxApplication接口,你能够删除或扩展当前的选定或促使Catalog树在某个部分的更新。

Catalog成员返回代表Catalog数据数的根GxCatalog对象,在那你能够通过Catalog的后继来使用IGxObjects-Container:

Children.来枚举。

TreeView成员能提供到ArcCatalog树查看的路径。

它可以使建立好的查看比如,GxContentsView,GxPreview,orGxMetadataView,也可以是用户自行添加上去的,在这,你能够控制激活了窗口,无论他本身的属性是怎么样的。

IGxCatalogEvents接口是由GxApplication执行的重要的接口,这个接口允许开发者添加各种ArcCatalog允许的代码,比如说对象的添加或是删除。

当ArcCatalog出现更新是,只有本地的对象会传递给OnObjectRefresher,然而这个对象下所有的类都会得到更新。

7.2.2GxSelection和GxObjectArray组件类                                

GxSelection对象能保存在树查看和标签查看中选定的项目。

GxSelection对象能被生成,但通常都是从GxApplication中得到的,当用户右击鼠标决定复制和粘贴时选择那个中类来决定是很重要的。

下边的VBA代码就是使用GxSlelection对象来循环选定的对象和展示他们的目录的。

DimpAppAsIGxApplication,pGxSelAsIGxSelection,_

pEnumGxObjAsIEnumGxObject

DimpGxObjAsIGxObject

SetpApp=Application

SetpGxSel=pApp.Selection

SetpEnumGxObj=pGxSel.SelectedObjects

SetpGxObj=pEnumGxObj.Next

DoWhileNotpGxObjIsNothing

Debug.PrintpGxObj.Category

Loop

IGxselection接口由GxSelection唯一执行,能提供到选定到ArcCatalog目录中树查看和标签查看的路径。

当需要决定选择了什么或对己选定的类作修改时就使用则这个接口。

Location方法返回在树查看中选定的IGxObject,而SelectedObjects方法返回在标签查看中选定的对象的枚举。

FirstObject返回在标签查看中选定的第一个对象。

改变选定的方法需要一个可以设置为空的初始化参数。

调用这些方法能激活SelectionChanged事件来传送初始化参数。

选定的方法在标签查看中的选定的对象中。

下边的VBA代码显示了如何调用SetLocation方法来改变在树查看中的选定。

DimpAppAsIGxApplication

DimpSelAsIGxSelection

DimpObjectAsIGxObject

DimlnAsLong

SetpObject=pApp.Catalog.GetObjectFromFullName_

("

d:

\tools\various\labeling.txt"

ln)

SetpSel=pApp.Selection

pSel.SetLocationpObject,Nothing

GxObjectArray对象有一系列的GxObjects,这个对象同过一个方法或对象返回。

因此,取决于开发者如何开发和操作这种类型的对象。

一些在ArcCatalog对象中的方法将IEnemGxObject变量作为输出,如果没有GxObjectsArray类,开发者能定义他们自己的类来执行IEnumGxObject

IGxObjectsArray接口适于由GxObjectsArray类来执行,提供对保存在类中的GxObject系列的操作。

通过这个接口,用户可以插入,移动,重新取回队列中的对象。

7.2.3GxView抽象类                                  

有两种查看:

标签查看和预览。

它们的执行非常相似,但基于外观的不同在各自的目录里注册。

标签查看在ArcCatalog主窗口中显示独立的标签。

不论当前的选定它们通常都是能够执行的。

预览则有些不同,他们在预览的标签可以得到,只有显示当前的选定的适合的形式。

应用成员能决定这些。

如果应用能够执行,它会在预览允许的前提下显示尽可能多的可行方法。

若不能,则不会显示。

当注册为标签查看时,应用不会起作用。

在适当的时候,ArcCatalog能使GxView激活或非激活。

作为响应,查勘能更形自己或建立/释放既有的连接。

GxView必须最大限度的支持IGxView接口,ArcCatalog通常用它来与查看操作。

它从查看得到bWnd来展示bWnd成员。

它也保证事件能正确的传送到bWnd,当ArcCatalog窗口调整大小时它也随之调整大小。

开发者可以自己定义查看来执行接口。

使用Active成员来控制GxApplication,GxCatalog对象以参数的形式传递。

Deactivate成员来释放应用。

DefaultToolbarCLSID提供特殊查看的默认工具引用。

查看默认的工具对当前的GxView类型相适应。

下边的VBA代码使用IGxView接口名字成员来判断你是否在预览。

如果是的,预览的ID类就会更改成表格查看。

DimpAppAsIGxApplication,pGxViewAsIGxView

SetpGxView=pApp.View

IfUCase(pGxView.Name)="

PREVIEW"

Then

'

Theabovelinecouldbereplacedwith"

IfTypeOfpGxViewIsIGxPreviewThen"

DimpPrevAsIGxPreview,pUIDAsNewUID

SetpPrev=pGxView

Debug.PrintpPrev.ViewClassID

pUID="

{9C34344D-99DC-11D2-AF6A-080009EC734B}"

pPrev.ViewClassID=pUID

EndIf

GxView随意的支持IGxViewPrint接口允许用户打印当前的展示。

这更有利于元数据查看的操作,因为它允许生成代码来打印格式化的元数据。

7.2.4GxContentsView和GxContentsViewColumn                              

GxContentView派生类显示当前选定为之的子类,大图标,列表,报道。

通过IGxCintentsView中的DisplayStyle成员来改变风格。

下边的VBA代码就是用来检查当前的查看看它是否是GxContentsView。

代码也允许成员和查看相联系。

DimpAppAsIGxApplication,pViewAsIGxView

DimpContViewAsIGxContentsViewColumns,pColAsIGxContentsViewColumn

SetpView=pApp.View

IfTypeOfpViewIsIGxContentsViewColumnsThen

SetpContView=pView

SetpCol=pContView.ColumnByIndex(0)

Debug.PrintpCol.Caption&

"

"

&

pCol.PropertyName

EndSub

IGxContentsView接口由GxContentsView对象来执行。

它能提供改变用户与查看类型的方式。

那种类型的文件在展示,怎么显示,是否能一次选定多个都是于由接口控制的。

用ObjectFilter成员来强制一系列的对象用过滤类来显示。

就什么样的过滤以及怎么生成自己的过滤,查看在本章中对GxDialog和GxObjectsFilter的介绍。

IGxContentsViewColumns接口起到对GxContentsView对象中的GxContentsViewConlumn对象的容器。

集合中的容器代表查勘中显示的标签项。

在使用InsertColumn方法加入到你的项目中,执行UpdateColumn

方法来更新项目列表。

RemoveAllColumns将不会移动名称和类型项目。

这些项目不会被移动,一定要谨记对项目的移动不是暂时的永久性的,

GxContentsViewColumn对象代表展示的项目信息。

开发者有生成和加入额外的项目信息来自定义展示特定信息的查看。

IGxContentsViewColumn接口提供包含到保存GxContentsView对象的成员。

Column成员能让你设置宽度,可见性,项目的标题。

固有的成员包括名字,目录,大小等。

除非你将它们加入到你自己的GxObject工程当中,它们是不会起作用的。

如果你这样做,你就能够加入特定的对象成员。

PropertyName成员是基于工程元文件的关键词的。

在使用一个PropertyName之前确保你的元文件有一个特定关键词。

7.2.5GxDocumentationView组件类                                   

在ArcCatalog中元文件的查看是由GxDocumentView代表的。

因为它本身就是GxView,它自然就支持IGxView。

然而要操作他,你就必须要用到IGxDocumentation查看。

接口允许你做三种操作:

通过Edit来编辑元数据,通过EditProperties来编辑元文件,通过Syncbronize来给当前的对象付值。

建立一个定义的编辑,生成一个执行IMentadataEditer接口执行的对象,然后通过IMetadataHelper:

Editor成员来通知元数据的扩展的对象。

GxDocumentationView执行IGxViewPrint来让你打印格式化的元数据。

IGxDocumentationView是由GxDocumentationView执行的。

它提供一系列操作与对象相关的元数据相关的操作。

通过这个接口,开发者能打开于元数据相关的编辑,或者将编辑应用到元数据。

下边的VBA代码将默认的编辑应用到与选定的对象类相关的元数据。

DimpAppAsIGxApplication,pGxViewAsIGxView,_

pDocViewAsIGxDocumentationView

IfTypeOfpGxViewIsIGxDocumentationViewThen

SetpDocView=pGxView

pDocView.Edit

7.2.6GxGeographicView组件类                                   

当想预览你的数据时,就使用GxGeographicView,这可以在ArcCatalog中预览图标实现,它能在框口中显示选定的数据的地理图形。

默认时,GxGeographicView对象来在预览页中显示,然而,对象会像执行GxView对象那样来执行IGxView。

一系列的标准操作工具被用来zooming,组装,鉴别身份。

然而,你可以添加你自己的工具,在这个查看里你可以选择自己喜欢的方式。

能在IGxGeographicView接口中得到地图或显示地图。

用户有两个对象来展示选中的项目,你也可以操作他们。

下边的VBA代码能得到查看地图查看的地图

PublicSubZoomIn()

IfNotTypeOfpApp.ViewIsIGxPreviewThenExitSub

DimpPreviewAsIGxPreview

SetpPreview=pApp.View

IfNotTypeOfpPrev

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2