第3章 自定义用户接口

导读:所有的ArcMap中的自定义都可以储存与一个图像文件或图像模板中,如果你无意识的做了一些定义,然后用户接口会自动创建一个新的Normal.mxt文件,这比撤消自定义更简单一些,你可以用图像模板通过工程或文件在一个结构中广泛地传播用户的自定义,任何用户接口或VBA工程的自定义都是创建新图像文件的一部分,你可以通过保存你的自定义到下一个级别中来确定你自定义的范围,自定义图像文档,你给数据添加说明、

第3章 自定义用户接口

所有的ArcMap中的自定义都可以储存与一个图像文件或图像模板中。

你对ArcMap桌面内容、图像的设计、工具栏和指令的修改以及你编写的VBA代码都将保存到一个图像文件中。一个图像文件可以保存在系统中的任何地方,它的扩展名为mxd。 图像模板

如果标准模板不存在的话,ArcMap江南自动创建一个标准模板。如果你无意识的做了一些定义,如删除工具栏和指令项,你只要删除Normal.mxt文件,然后用户接口会自动创建一个新的Normal.mxt文件。这比撤消自定义更简单一些。

你可以用图像模板通过工程或文件在一个结构中广泛地传播用户的自定义。

图像模板是中图像文件。在几乎所有方面,图像模板和图像文件在结构上是一致的。功能上的不同是ArcMap把认识和使用模板当作创建新图像文件的起始点。这与你如何在Microsoft Office软件中使用模板是类似的。

任何用户接口或VBA工程的自定义都是创建新图像文件的一部分。此外,任何的模板的变化都将在下一次调用时传递给基于模板的文件。

在ArcMap中,模板和文件可分为三个级别。你可以通过保存你的自定义到下一个级别中来确定你自定义的范围。

自定义图像文档

当你在处理一幅图像时,你给数据添加说明、设计图像的输出、定义用户接口以及编写VBA代码。所有这些都将始终与文件相关。

用工程模板有选择性自定义

其他的工程和用户也可以使用你制定的模板。模板可以作为一个新的图像文件的起点。这个新的图像文件从模板中继承了你的自定义。

用标准模板进行完全自定义

这里介绍ArcMap中三个加载的模板——标准模板、工程模板和工程如何在VBA浏览器中显示。

ArcMap中有一种特别的模板叫做标准模板,它储存了启动ArcMap需要载入的自定义用户接口。你对标准模板做的改变将被以后打开的所有图像文件所继承。当你在安装完ArcMap后第一次运行时,标准模板会自动创建在profiles文件夹中。它在不同操作系统的文件的位置如下:

Windows NT:

C:\WINNT\Profiles\<your username>\Application Data\ESRI\ArcMap\Templates\

Windows 2000:

C:\Documents and Settings\<your username>\Application Data\ESRI\ArcMap\Templates\ 这个缺省的标准模板包含了所有的标准工具栏、指令、放置工具栏和目录的缺省位置。你对标准模板的定义将储存在这个文件中。

如果你希望在每次运行ArcMap时都显示这些改变,就把它们储存在标准模板中。假设你的管理员已经定义了工具栏或工具,而且她希望每个属于该组织的人都可以使用它们。你的管理员可以用它代替缺省标准模板。为了实现这个目的,你的管理员可以将她自定义的标准模板文件Normal.mxt复制到以下位置:\ArcGIS\arcexe81\bin\templates folder。这样每个人使用的都是她定义的标准模板。下面演示的是它如何工作的。

如果你在运行ArcMap时没发现有标准模板,软件会自动在以下位置中寻找\ArcGIS\arcexe81\bin\templates folder,如果找到,则将其复制到profiles文件夹中,并将其视做个人标准模板。然而,你使用的并不是组织内的标准模板,而是你可自定义的模板。如果在profiles文件夹或\ArcGIS\arcexe81\bin\templates folder中没有Normal.mxt文件将创建在profiles文件夹中。

3.2.3 自定义ArcCatalog

你可以用以下方法自定义ArcCatalog:

● 你可以添加、删除或重组标准用户接口中的元素。

● 你可以用VB编写代码。

ArcCatalog并不像ArcMap那样利用整个文件和模板的结构。ArcCatalog软件不是基于文件或基本模板;它只使用标准模板。因此,所有ArcCatalog的自定义接口都储存在标准模板中。

如果在安装软件后第一次使用ArcCatalog,一个标准模板Normal.gxt会自动创建在profiles文件夹,不用操作系统下的位置如下:

Windows NT:

C:\WINNT\Profiles\<your username>\Application Data\ESRI\ArcCatalog\

Windows 2000:

C:\Documents and Settings\<your username>\Application Data\ESRI\ArcCatalog\

3.3 Application组件类

这个程序是一个核心对象,它代表了ArcGIS软件。通过这个软件,你可以获得属性和功能以及操纵其它元素,如文档、窗口控制和状态栏。

每一个运行的ArcGIS程序通过对象呈现出来——ArcCatalog通过ESRI ArcCatalog对象库中的程序。ArcMap通过ESRI ArcMap对象库中的程序。

IGXApplication在第七章中介绍。IMXApplication在第四章中介绍。Iapplication的接口被两个程序类共用。

当ArcGIS程序运行时,一个程序对象在VBA运行。它在所有的对象中有效,你可以用以下方法查阅程序的属性。

MsgBox Application.Caption

你可以在VB或其他COM语言中运行ArcMap程序。例如,在VB中运行ArcMap创建一个新的项目,在ESRI核心库中添加一个介绍,把以下代码添加在Sub中并执行它。

Dim m_doc As IDocument

Set m_doc = New MxDocument 'start ArcMap

扩展功能是个子系统可以给软件添加重要的功能。空间分析就是个很好的例子。

VC++项目使用#import直接获取类别信息。引入esriCore.olb可以自动在ArcGIS接口中建立“smart pointer”类。用smart pointer可以用以下方法创立ArcMap实例:

// Example : Creating an instance of ArcMap

IDocumentPtr ipDoc (CLSID_MxDocument);

文档包含自定义用户接口设置、VBA过程和其它设置如层和图像扩展等。你可以打开或保存文档。

在IApplication接口中可获得文件对象,扩展功能、状态栏对象、模板对象、目前选择的工具和VB编辑器。

你可以用打开、保存和打印等功能;锁定和解锁自定义程序;显示对话框;退出程序。 ArcCatalog并不包含有创建新文件、打开文件、打印文件、打印预览和保存为文件的功能。保存文件功能是保存标准模板而不是保存文件。

程序对象包含有IVbaApplication接口,可以允许你编辑插入、删除和运行VBA代码而不用打开VB编辑器。

为了进入这个接口,在软件中运行QI。这个IVbaApplication接口有创建新的模板、在模板中插入代码、删除模板和运行macro的功能。

下面是如何创建一个新的VBA模板,在模板中插入VBAmacro和运行宏的代码: Dim pVbaApp As IVbaApplication

Dim s As String

Set pVbaApp = Application

pVbaApp.CreateCodeModule "Project", "MyModule"

s = "Public Sub MyMacro" & vbNewLine & _

" Msgbox Application.Document.Title" & vbNewLine & "End Sub"

五星文库wxphp.com包含总结汇报、考试资料、资格考试、IT计算机、党团工作、word文档、教学教材、计划方案、办公文档、文档下载以及第3章 自定义用户接口等内容。

本文共15页12345>>15