《VB的程序设计与开发实习报告-.pdf》由会员分享,可在线阅读,更多相关《VB的程序设计与开发实习报告-.pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、VB 的程序设计与开发实习报告实习内容:在完成 PPT 中一、二、三、四、五、六章内容中的练习的基础上,利用VB 和 AO 自行设计并开发一个GIS 实验系统,利用VBA 的方式设计并开发一个简单的GIS 系统。实习要求:1、在学习基于VB 和 AO/AE 的程序设计的相关知识的基础上,设计并开发一个GIS 系统,要求具有如下功能。(1)基本功能:图层的添加、删除;图形的放大、缩小、漫游、全图显示;基本的空间查询功能。(2)提高部分:空间分析功能:叠置分析、缓冲区分析、网络分析。2、利用 VBA 的方式设计并开发一个简单的GIS 系统。要求具有自己定制的菜单系统、工具按钮,具有放大、缩小、漫游
2、等功能。在完成以上设计与开发任务的基础上,介绍 GIS 系统的设计与开发的主要过程、注意事项等。实习意义:实习步骤:一、创建程序的用户界面1、启动 VB:启动 VB 时,显示 New Project 对话框。选择Standard EXE,进入 Visual Basic 环境。2、保存文件:(1)保存 Visual Basic 工程:点击File-Save Project(2)新建文件夹:LoanCalc,保存窗体文件,保存工程文件,将工程名改为:Loan Calculator 二、从用户处获取信息1、添加文本框控件(1)在工具箱中单击生成TextBox 控件的工具。如果不知道是哪一个,将鼠标移
3、到每个工具上停一会就可看见工具提示。(2)将鼠标指针移动到窗体上。指针变成十字丝,表明即将绘制一个控件。(3)将指针移至要绘制控件的区域的一角。(4)单击并按住鼠标左键不放。(5)拖动鼠标到另一个对角,到达最终位置。(6)满意后,松开鼠标,绘制成功。2、设置控件的属性:在窗体上添加控件后,通常要设置控件的一个或多个属性。属性是控制对象外观和行为方式的摄制。下面修改刚才添加的文本编辑框的相关属性。修改其Name属性和 Text 属性。选中控件,按F4,修改相关属性。将Name改为 txtPrincipal,Text 属性改为空。3、按同样的方法添加其他三个文本编辑框,并修改相关属性。另外3 个文
4、本编辑框的Name 分别为:txtIntRate,txtTem,txtPayment.同时清除它们的Text属性。4、移动控件及改变控件大小:右键点击工具栏,选中Form Editor 工具菜单。5、标记程序的控件:为每个文本框控件添加一个标签(Label)控件,提供提示信息。6、添加命令按钮:前面完成了设计,下面需要提供一些开始操作的方法这就是命令按钮控件的目的。添加两个命令按钮,Name 分别为:cmdCalculate,cmdExit;Caption属性分别为:Calculate Payment,Exit。三、改变窗体的属性可设置窗体的属性来控制它的外观和行为方式。(1)修改窗体的名称为
5、:frmMain(2)改变窗体的宽度和高度:Width,Height 属性。(3)改变窗体的WindowState等。四、为程序的执行编写代码现在的 Project 还不能做任何工作,必须添加一些代码。1、响应事件:通过在事件过程(Event Procedures)中放置代码,来使程序对事件做出响应。事件过程是特定事件作用对象时所运行的一段代码。双击窗体上的Exit 按钮,响应 Click(点击)事件,进入代码窗口。以 Private Sub开始,以 End Sub结束。Private Sub后面的部分表明子过程的名称,为 cmdExit_Click,这是表明一个名为cmdExit 的控件的
6、Click 事件过程的一个预定义名称。2、指定事件过程:查看代码窗口顶部附近的两个下拉列表框,Object 框列出了放置在当前窗体中的所有对象及窗体本身。Procedure框列出了 Object 框中当前所选对象的所有事件。使用这两个下拉列表可以导航到代码窗口的任一部分。可以看成一个导航工具。3、编写 Calculate Payment命令按钮的代码:该按钮的功能是:在用户提供的信息基础上计算每月的付款金额。(1)变量的声明:Calculate子过程的第一部分用于声明所需的变量。Calculate子过程使用四个变量:本金额、利率、贷款金额、计算出的月付款。在 Private Sub cmdCa
7、lculate_Click()和 End Sub之间的空行上,键入以下代码:Dim cPrincipal As Currency Dim fIntRate As Single Dim nTerm As Integer Dim cPayment As Currency 变量声明的一般格式为:单词Dim,紧接着一个变量名、单词As 和变量类型。(2)过程代码:过程代码是过程中做实际工作的剩余部分。添加如下两行代码:Store the Principal in the variable cPrincipal cPrincipal=Val(txtPrincipal.Text)第一行是一个解释要做什么的
8、注释。以单引号“,”标记。第二行提取用户输入到txtPrinpical 文本框的信息,并放入变量cPrincipal中。这是一个赋值语句。Val()函数:用于将括号中的任何内容转换成数值类型以便于后面的计算。添加剩余代码:Store the Principal in the variable cPrincipal cPrincipal=Val(txtPrincipal.Text)convert the interest rate to its decimal equivalent i.e.12.75 become 0.1257 fIntRate=Val(txtIntRate.Text)/100
9、 Convert annual interest rate to monthly by dividing by 12 fIntRate=fIntRate/12 Covert number of years to number of months nTerm=Val(txtTem.Text)*12 Calculate and display the monthly payment The Format function makes the displayed number look good cPayment=cPrincipal*(fIntRate/(1-(1+fIntRate)-nTerm)
10、txtPayment.Text=Format(cPayment,Fixed)(3)运行程序:运行程序,输入以下值:Principal(本金):128000($);Interest Rate(利率)9.75(%);Term(周期)30(年)点击 Calculate Payment 命令按钮,观察一下自己的结果。五、创建一个菜单栏1、建立主要的菜单项(1)首先打开希望菜单所在的窗体,然后以三种方法中的任何一种启动Menu Editor:1)单击工具栏上的Menu Editor 按钮;2)选择 Tools,Menu Editor;3)按 Ctrl+E。2、创建一个简单的菜单系统六、创建Visual
11、Basic 的工具栏要创建工具栏,需要用到多个控件:一个或多个ToolBar 控件以及 ImageList 控件。ImageList 控件包含其他控件使用的位图集。ToolBar 控件在它的按钮上显示来自ImageList 控件的图像。1、添加到工具箱:要在窗体上绘制一个ToolBar 控件,首先需要把它添加到工具箱中。开始在工具箱空白区单击鼠标右键,从弹出式菜单中选取Components,打开 Components对话框,选取第一组Common 控件 Microsoft Windows Common Controls6.0,如图所示,包含标准工具栏和ImageList 控件。如果需要 Coo
12、lBar 件,则同时选择第三组Common 控件 Microsoft Windows Common Controls36.0。2、为工具栏获取图片(1)在窗体上绘制ImageList 控件,并给予命名。该控件对用户不可见,大小由Visual Basic 设置。(2)为 ImageList 控件添加图像。按下Properties 窗口中的 Custom 属性的省略号()按钮,或者右键单击ImageList 控件并选取 Properties,打开属性页对话框(3)为 ImageList 控件添加图像。单击Insert Picture 按钮,选择需要的图片。(4)添加所需图像,点击“确定”。3、创建
13、一个标准的工具栏(1)在窗体上绘制ToolBar 控件。(2)设置工具栏的排列方式。1)顶部定位:Align:1-vbAlignTop;2)底部定位:Align:2-vbAlignBotton;3)左边或右边定位;3-vbAlignLeft;4-vbAlignRight 4)浮动;Align:0-vbAlignNone(3)右键单击控件,选取Properties,打开属性页对话框。(4)将 ToolBar 控件的 ImageList 属性设置为提供图像的ImageList 控件的名称。4、创建工具栏按钮(1)在工具栏上添加标准按钮。点击Insert Button 按钮,添加标准按钮,修改Key
14、 属性,Caption 属性,Image 属性等。5、用代码激活按钮。工具栏的按钮没有自己的事件,实际上是为工具栏自身的ButtonClick 和 ButtonMenuClick 事件编写代码。可以使用Button 对象的 key 属性确定实际上按了哪个按钮。添加代码。七、创建ActiveX 控件7.1 建立 ActiveX控件的步骤(1)启动一个新的Visual Basic ActiveX 控件工程,为控件绘制界面。(2)添加代码。激活希望控件具有的所有属性、方法和事件。(3)建立一个测试工程,在Visual Basic 中测试控件。确保使用赋予控件的所有属性、方法和属性。(4)将控件编译到
15、一个OCX 文件中,然后在控件的编译版本上测试。如果是为Internet 开发的,就在Web页上测试。(5)利用 Package and Deployment Wizard 或其他工具,为控件建立一个包括所有支持文件的可配置版本。7.2 创建一个用户绘制的控件:可以用图形方法自己绘制界面,创建一个不包括任何现有控件的完全原始的控件。绘制自己的控件需要比其他两种方法做更多的工作,但是它可以提供一个个原始的或不同的用户界面。7.3 创建 ActiveX 控件(1)启动 Visual Basic,选择 File,New Project.(2)在 New Project 对话框中,选择ActiveX
16、Control 选项。创建了一个叫做UserControl1 的 UserControl 对象的新工程(3)在属性窗口中将UserControl 对象的名称改为AddressCtl。(4)选择 Project,将工程名改为Address.(5)在窗体上添加5 个 TextBox 控件,将它们的Text 属性设置为空字符串,同时给他们赋予下列名字:txtName txtStreet txtCity txtState txtZip(6)在窗体上添加5 个 Label 控件,同时赋予下列属性。Name 属性:lblNamelblStreetlblCitylblStatelblZipCaption 属
17、性:Name:Street:City:State:Zip:(7)排列控件的布局。(8)在控件中添加改变尺寸的代码:1)双击 UserControl 对象,打开代码窗口;2)从 Procedures框中,选择 Resize 事件;3)添加以下代码;4)保存。(9)在控件中添加新属性。(10)测试 ActiveX 控件。1)在工程组中添加一个测试工程:选择 File,Add project,选择一个 standard EXE工程类型即可。2)建立测试工程:在工程组中添加Standard EXE 工程时,ToolBox 中有一个暗淡显示的图标。这个图标代表用户控件,只要打开UserControl 窗
18、体,它就会保持为不可用状态。添加一个命令按钮,添加相应的代码。3)设置启动工程:当使用一个工程组时,必须首先指定哪个工程是启动工程。将测试工程Project1 设置为启动工程。右键点击Project1,选取 Set as Start Up.4)运行测试程序。(11)编译控件:1)创建 OCX 文件;2)从 Visual Basic 的 File 菜单中选择 Make 选项;3)出现 Make Project 对话框后,键入一个文件名;4)单击 OK 按钮,VB 编译此控件,并将OCX 文件写入磁盘。(12)测试编译的控件:在VB 中启动一个新的Standard EXE 工程,选择菜单Proje
19、ct,Components,显示 Components对话框。单击Browse 按钮,选择刚才创建的OCX文件。在 Toolbox 中出现一个新的图标。然后在窗体中绘制该控件进行测试。(13)将控件配置到其他计算机上:将OCX 文件复制到其他用户的计算机上,并用REGSVR32 命令为文件注册,其他已经在计算机上安装了Visual Basic(以及支持文件)的用户就可以使用此控件了。如:REGSVR32 d:dataaddress.ocx(14)将控件注册以后,就可以在其他程序中使用了,点击Project,Components,在 Components 对话框中就可以找到我们刚才创件的OCX
20、控件了。八、建立ActiveX DLL1、建立动态链接库:1)启动 VB,执行“文件”菜单中的“新建工程”命令,打开“新建工程”对话框。2)在“新建工程”对话框中选择“ActiveX DLL”图表,然后单击“打开”按钮,将在工程中自动建立一个类模块Class1。3)打开属性窗口,把类的名字该成Fraction。4)点击“保存”按钮,把类模块保存到文件mathfrac.cls 中。5)在“Project Name”中输入工程名“math”。在“工程描述”内输入适当的信息,在“启动窗体”中选“none”,然后单击“确定”。6)执行文件菜单的“工程另存为”命令,把工程保存到mathproj.vbp
21、中。7)打开类模块,在窗口中输入以下的代码。8)执行“文件”菜单中的“生成 mathproj.dll”命令,打开“生成工程”对话框,在“文件名”一栏写上要输入的名字。通常用工程文件作为文件名。把扩展名改成.dll,即 mathproj.dll,单击“确定”。2、测试 DLL:1)执行“文件”菜单中的“添加工程”命令,在打开的“添加工程”对话框(“新建”选项卡)中选择“EXE”图标,然后单击“打开”按钮。添加工程后,在“资源管理器”中有两个工程,组成一个工程组,为了使程序能运行,必须把新添加的工程设为启动工程。2)保存工程组和新添加的工程及其窗体。3)打开“project”菜单中的“Refere
22、nces”子菜单,在列表框中选择“math”,单击“确定”。4)在窗体上画6 个文本框,4 个命令按钮。文本框的 Name 属性分别为:txtN1,txtN2,txtN3,txtD1,txtD2,txtD3,Text 属性为空白。命令按钮的Name 属性分别为:cmdAdd,cmdSubstract,cmdMultiply,cmdDivide,Caption属性为:加,减,乘,除。再在窗体上添加三条直线,用来把分子分母隔开。5)编写用户驱动程序6)运行。九、使用已经编译的DLL基本步骤如下:(1)安装。将DLL 及其所需要的任何组件和文件拷贝到开发人员的PC 机上。(2)注册 DLL。使用 r
23、egsvr32 程序在 Windows Registry 中注册 dll.。十、VB 数据库编程(1)数据控件(Data 控件):1、选择数据库;2、选择记录集;3、添加数据绑定控件并确定其DataSource 和DataField。(2)ADO(ActiveX Data Objects,ADO,ActiveX数据对象):1、引用;2、建立一个数据源,建立ODBC 数据源;3、建立 ADO 数据控件通过ADO 控件的属性页设置相关属性;4、数据绑定类似于Data 控件,设置几个编辑框,实现数据的绑定;5、使用 DataGrid 控件;6、打开和关闭一个连接;7、使用 Execute 方法。Co
24、nnection对象的 Execute方法能运行一个数据源的SQL 语句。在窗体上添加一个list 框件 lstHouse,添加一个命令按钮,然后添加代码;8、创建一个记录集:Dim rs as ADODB.Recordset Set rs=New AODDB.Recordset 9、记录集的导航MoveFirst MoveLast MoveNext MovePrevious Move 基于 VB 的 AO 开发1、设置环境(1)打开一个Visual Basic 工程,并创建一个标准的EXE 工程。如下图所示。(2)点击 VB 的 Project 菜单,然后点击Components.(3)在
25、Components 对话框中,点击ESRI MapControl,然后点击”确定”,MapControl 将出现在VB 工具盒中。2、添加 MapControl可以在一个VB 窗体中添加一个或多个MapControl。(1)点击 VB 工具箱中的MapControl 图标。(2)点击并拖动到VB 窗体的适当位置。或者是双击MapControl 图标,MapControl 将自动放置在窗体上。如下图所示。3、MapControl 的属性页。MapControl 有 4 个属性页:General,Map,Color 和 Picture。(1)右键点击MapControl,然后点击Properti
26、es,打开 MapControl 的属性页。(2)使用 What?s This按钮,获取属性页的帮助。1)在属性页对话框中,右键点击某个控件或标签2)然后点击What?s This 按钮,将显示相关的帮助信息。3)点击属性页的其他的任何地方,关闭帮助。(3)直接点击属性页对话框的“帮助”按钮,获取相关的AO 的帮助。(4)使用属性页添加数据1)右键点击MapControl,然后点击Properties,然后打开MapControl 属性页。2)点击 Map 标签。3)点击 Add Layers 按钮(“+”按钮)。4)在 Add Layers 对话框中,导航到包含数据的文件夹。5)点击并高亮显
27、示需要添加的数据,如果需要选择多个数据,通过同时按住shift 键的方式进行选择。6)点击 Add 按钮,将选中的数据添加到MapControl 中。7)点击“确定”按钮,应用选中的图层,并自动关闭属性页对话框。8)点击“Run”菜单,并点击“Start”子菜单,运行程序5、从 Map Document 中添加数据。(1)右键点击MapControl,然后点击“Properties”,在属性页对话框的“General”标签中。(2)点击浏览图形文档(Browse Map Document button)按钮。如下图所示。(3)在 Map Documents 对话框中,导航到包含所需要选择的ma
28、p document 的文件夹。(4)点击并高亮显示目标map document,然后点击“打开”按钮。(5)点击“Run”,运行程序,得到如图所示的结果。7、使用属性页管理数据。(1)如下图所示,在“Map”属性页中,在“Layers”列表中,可以通过点击移动图层顺序的按钮,移动图层的上下顺序,一般将栅格数据放在下面。(2)如下图所示,点击“Properties button”(属性按钮),弹出如下图所示的图层属性的设置对话框。可以修改图层的相关属性,例如,将符号(Symbol)该为玫瑰色,(3)运行结果为8、使用属性页设置控件的外形。在如图所示的属性页的“General”选项卡,选中“Pr
29、eview in Design Mode”,然后点击“确定”。然后改变控件的相关外形,如边界的类型,然后点击“应用”,就可以在设计模式下观察修改的结果。9、使用属性页设置图形属性利用“Map”属性页可以设置图形的相关属性,如坐标系统、比例尺、图形的旋转角度等。10、更新属性,编辑代码(1)更新属性:点击MapControl 激活。点击 Custom 属性的()按钮,打开MapControl 的属性页,更新相关的属性。(2)编辑代码:点击MapControl 激活。点击F7,或双击 MapControl,或者点击View 菜单,然后点击Code 子菜单,进行代码的编辑。11、使用 ArcObje
30、cts 开发帮助ArcObjects 开发帮助提供了关于ArcObjects 中的每个对象(object),属性(property),方法(method)和事件(event)的相关帮助。(1)打开 ArcObjects Developer Help 1)点击 MapControl、激活 MapControl。2)按 F1,打开 ArcObjects Developer Help。(2)从对象浏览器(Object Browse)中获取帮助1)点击 F2 或者点击View 菜单,选择Object Browser 子菜单。2)从 Project/Library 下拉列表中选择esriMapContr
31、ol。3)在类列表(Classes)中选择 MapControl,然后从成员列表(Members of,MapControl?)中选择一个事件、方法或属性。4)点击 Help button(帮助按钮),打开相关的帮助信息。12、添加 ZoomIn(放大)功能在 OnMouseDown 程序中添加如下代码:运行程序以后,用鼠标点击图形,然后拉动一个矩形,释放鼠标。图层将放大显示。13、添加 Pan(漫游)功能修改前面的OnMouseDown 程序,如果点击左键,则执行放大操作,如果点击右键,则执行移动操作。代码如下:运行程序,执行相关的放大和漫游操作。14、添加移动到全范围(Zoom to Fu
32、ll Extent)的功能(1)在 VB 的窗体上添加一个命令按钮(CommandButton)。修改命令按钮的Caption 属性为”Full Extent”(2)双击 Full Extent 命令按钮,添加代码。Private Sub Command1_Click()MapControl1.Extent=MapControl1.FullExtent End Sub(3)点击 MapControl 控件,修改ShowScrollbars 属性为 False。(4)运行程序,测试成果。15、创建 Find(寻找)工具给定一个州的名字,找到该州,并放大显示。例子数据位于:ArcGISDevelo
33、perKitsamplesdatausa 操作如下:(1)在“Project”-“Components”中引入 ESRI MapControl 控件,并在窗体中加入MapControl 控件;(2)在“Project”-“References”中引入“ESRI Carto Object Library”(IFeatureLayer),“ESRI GeoDatabase Object Library”(IQueryFilter)(3)使用属性页添加图层states.shp和 ushigh.shp。(4)添加一个Label 按钮,并修改其Caption 属性为:“State”。(4)添加一个Tex
34、tBox 按钮,并清除其text 属性。(6)双击 TextBox 按钮,进入代码编写环境。(7)选择 KeyPress事件,然后添加如下代码。(6)运行程序输入美国各州的名称(New Jersey,Ohio,Texas),然后回车,将放大显示相关的图形,16、基于比例尺显示图层通过代码确定某个图层是否可见。在某个比例尺下,不必显示太多的细节。(1)在 Components 对话框中引入ESRI MapControl 控件并加入到窗体中。(2)在 References 对话框中引入ESRI Carto Object Library(3)利用属性页将states.shp,ushigh.shp,c
35、ounties.shp添加到 MapControl 中。(4)将 counties 图层移动到states图层之下。(5)点击属性按钮,显示 counties 图层的属性,点击 Symbology 选项卡,点击 Categories,然后点击Unique Values。(6)选择 STATE_NAME 字段,然后点击Add All Values 按钮,然后点击“确定”。(7)然后在 Form Load 程序中添加如下代码运行程序,放大图形,直到counties 图层可见为止。当点击 Full Extent 按钮后,counties 图层不再可见。17、通过代码添加图层解释:AddShapefi
36、le 方法:添加一个新的图层到MapControl 的顶部图层。AddLayer 方法:在确定的顺序添加一个图层。图层可以是不同的格式的,如 TIN,Raster,coverage,或者是 ArcSDE的。LoadMxFile 和 AddLayerFromFile方法也可以用来添加数据到MapControl。(1)在 Components 对话框中引入ESRI MapControl 控件,并加入到窗体中。(2)在 References 中引入 ESRI Geodatabase Object Library。(3)在 References中引入 ESRI DataSourceFile Objec
37、t Library。(4)在 References中引入 ESRI Carto Object Library。(4)在代码区添加如下代码,运行程序,测试成果。18、增加空间查询工具本例中实现了四种空间定位查询的功能:1、按点查询给定一个鼠标点位,检索出离它最近的空间的空间对象,并显示它的属性,回答它是什么,它的属性是什么。2、按线查询给出一条直线或折线段,检索出它包含的点或穿过的线或面,显示它们的属性。3、按矩形查询给出一个矩形,检索出这个矩形范围内或相交的某个类或某一层的空间对象,并显示出每个对象的属性表。本例中的矩形查询是检索出包含或者穿过该矩形的全部地物。4、按多边形查询给定一个多边形,
38、检索出这个多边形范围内或相交的某个类或某一层的空间对象,其实现方法与按矩形查询类似。操作如下:(1)在 Components 中引入 ESRI Mapcontrol 空间,并加入到窗体中;(2)在 References中分别引入:1)ESRI Carto Object Library;2)ESRI Display Object Library;3)ESRI GeoDatabase Object Library;4)ESRI Geometry Object Library;5)ESRI System Object Library;6)ESRI SystemUI Object Library(3)
39、在工程中添加一个form 和一个 module。(4)在 Form1 中添加一个MapControl,两个 ComboBox,一个用来显示图层名,改Name 属性为 cboLayers;一个用来显示四种查询方法,改Name 属性为 CobSelect。另外在 Form1 中添加 5 个 CommandButton,分别用来执行放大、漫游、居中、显示图层、和选择操作的功能。(5)通过 MapControl 的属性页面添加图层。本例中用到的图层文件位于ArcGISDeveloperKitsamplesdatausa文件夹中,例如可加入:ushigh.shp,states.shp,wind.shp。
40、(6)在 Form2 中添加一个MSHFLexGrid 控件,用来显示查询结果的属性。(7)在 module 中定义了3 个全局变量m_pCurrentLayer,m_pMap,m_pLayer 分别用来获取Form1 中的当前图层,当前地图和当前的特征图层。(8)在 module 中定义一个ConvertPixelsToMapUnits函数,用来把象素的距离转换成地图上的距离。(9)定义 SelectMouseDown 函数用来实现点查询。AO 中点查询的过程为:先把屏幕上的点转换为地图上的点。pActiveView.ScreenDisplay.DisplayTransformation.T
41、oMapPoint(x,y).x,y 为屏幕上的点的xy 坐标。再以这个点为中心生成一个圆形的缓冲区。定义空间查询条件。对当前图层的所有特征进行遍历,找到符合空间查询条件的特征。Dim pCursor As IFeatureCursor Set pCursor=pFeatureLayer.Search(pFilter,False)pCursor 即为指向所有符合条件的特征的指针。在 Form1 的 MapControl1_OnMouseDown函数中响应本函数。SelectMouseDown x,y 运行结果(7)定义 SelectMouseTrackLine 函数来实现线查询,定义Selec
42、tMouseTrackPoly 函数来实现矩形查询。线查询和面查询可以使用同样的函数。步骤和点查询的基本一致,但在定义空间搜索条件有不同。运行结果:在地图上画线进行线选择20、事件追踪本例中将在MapControl 控件的图形容器中(GraphicsContainer)添加入图形要素,这些图形要素会随时间移动。(1)在 Form 中加入一个MapControl 控件和一个Timer 控件。(2)在 Project 菜单中的Reference 选项中选中ESRI Carto Object,ESRI Geometry Object,ESRI Display Object,ESRI System O
43、bject。(3)通过 MapControl 的属性页面加入一个shape图层文件。本例中所用的图层文件位于“arcgisDeveloperKitsamplesdataworld”路径下的dissolvecntry 文件。(5)在 Form 的数据声明区加入以下代码(6)定义 LoadAgentArray 函数,实现5 个图形要素的定位。(5)定义 LoadAgentArray 函数,实现5个图形要素的定位。(7)在 FormLoad 函数中加入以下代码:Set m_pGraphicsContainer=MapControl1.ActiveView.GraphicsContainer Load
44、AgentArray Dim i As Integer For i=0 To 4 DisplayAgentLocation elements(i)Next i(8)在 Timer1_Timer 函数中加入以下代码:Dim dMaxDistance As Double dMaxDistance=MapControl1.Extent.Width/20 m_pGraphicsContainer.Reset Dim pElement As IElement Set pElement=m_pGraphicsContainer.Next Do While Not pElement Is Nothing D
45、im pElementProperties As IElementProperties Set pElementProperties=pElement Dim pPoint As IPoint Set pPoint=pElement.Geometry pPoint.x=pPoint.x-(dMaxDistance*(Rnd-0.5)pPoint.y=pPoint.y-(dMaxDistance*(Rnd-0.5)pElement.Geometry=pPoint Set pElement=m_pGraphicsContainer.Next Loop MapControl1.Refresh esriViewGraphics(9)运行程序最后综合结果:Address:放大漫游:加减乘除:利息: