77范文网 - 专业文章范例文档资料分享平台

二次开发初级培训班培训讲义(3)

来源:网络收集 时间:2019-03-29 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

[了解文档]

CDocument类

一个文档代表了一个数据集合,典型情况下一个文档由用户通过File Open命令打开并通过 File Save命令保存。

用户通过与文档关联的CView对象操作文档。一个文档可以有多个视图关联。 [了解视图]

视图是显示存储在文档对象中的数据,并允许用户修改这些数据。视图对象保持了一个文档对象的指针。为了显示和修改数据,视图对象可用这个指针访问文档的成员变量。 一个视图对象只能与一个文档对象关联。 调用OnUpdate() 函数可以更新一个视图。所有的屏幕显示操作可在从CView继承的派生类的OnDraw成员函数中完成。

CView类的派生类 CCtrlView

实现常用控件的视图 提供基本的文本编辑功能

提供复杂的文本编辑功能

通过使用对话框资源实现窗体式窗口 提供了显示数据库记录的功能

CEditView CRichEditView CFormView CRecordView

CDaoRecordView 一般与DAO数据库类一起使用,其余与CRecordView相同。 CScrollView 提供滚动功能 CListView 在窗口中显示CListView控件 CTreeView

在窗口中显示CTreeView控件

6.图形设备接口

[理解设备环境]

1)户能够显示任何形式的数据,因为窗口中显示的所有东西,不论是文字、表格、位图或是其它任何类型的数据,都是以图形方式显示的。

2)MFC通过将windows的GDI函数和对象封装到其设备环境(DC)类中来帮助用户显示数据。

3)一个设备环境(DC)就是一个数据结构,它对窗口的绘制表面的属性保持跟踪。这些属性包括当前选择的画笔、画刷和用来在屏幕上绘制的字体。一个DC一次只能有一种画笔一种画刷和一种字体。设备环境对象封装了画线、写文本等API函数,所有的画图操作都通过DC对象进行。

4)DC帮助Windows实现了设备无关性。DC能用来输出到屏幕、打印机和元文件。 什么是元文件(metafile) 元文件就是由一系列可变长度结构组成的数组,图片以设备无关的格式存储在结构中。当元文件的记录被转换成设备命令并被合适的设备处理时,元文件被显示。

5)CDC类

CDC就是设备环境对象类。CDC对象提供了操作DC的成员函数。可以通过CDC对象类的成员函数来进行所有的绘图操作。

6)CPaintDC类

◆ CPaintDC 类继承CDC 类;

◆ CPaintDC 类的构造函数自动调用OnPaint 函数,接着就可以在DC 中绘图;类的析构函数自动调用EndPaint 函数。

◆ BeginPaint 函数准备绘图的窗口;EndPaint 函数表明结束窗口的绘图。

◆ 在视图类的OnDraw 函数中,CPaintDC已经由系统准备好,可以直接在OnDraw 中绘图。并且CPaintDC由系统自动释放。 7)CClientDC类

CClientDC对象封装了所有对Windows客户区DC的操作。CClientDC通过调用GetDC函数得到,通过ReleaseDC函数释放。

8)CWindowDC类

CWindowDC对象封装了对整个window窗口,包括框架的操作。

9)CMetaFileDC类

CMetaFileDC对象封装了对一个Windows 元文件的绘图操作。但是必须自己调用OnPrepareDC函数,来准备设备环境。

[图形对象(Graphic Object)]

Windows 提供了多种在DC 中使用的图形对象类。这些类与Windows GDI的句柄类型相对应。

Class Windows handle type

CPen CBrush

HPEN HBRUSH

HFONT HBITMAP HPALETTE

CFont CBitmap CPalette

CRgn HRGN 使用graphic object的一般步骤:

1)定义图形对象,使用对应类的Create函数如CreatePen创建画笔对象。或者在构造函数中进行初始化。

2)将创建的图形对象选进当前设备环境(DC)中,并保存旧的图形对象。 3)完成使用当前图形对象后,将原图形对象选回DC中。

4)保证分配的图形对象在结束使用后被删除。

[注意]: 如果要反复的使用一个图形对象,可以只申请一次,然后在需要的时候将其选入DC中。但是必须确保在不再需要使用图形对象的时候,删除它。

7.编程规范

[书写风格]

大括号的对齐,锯齿状对齐、缩进;使用空白(空字符,空行)以增加可读性。 [命名规范]

匈牙利记法

变量具有一个描述性的名字,如ClassName,名字用大写字母开始;如果变量是一多词名则每个单词词头需大写。然后,在描述性名称前,加上表示变量类型的字母——如,nCount为一整型变量,bFlag为一Boolean型变量。

前缀 a b d h 变量 Array Boolean Double Handle 注释 i l lp lpfn m n p s sz u C Integer Long Long pointer to Long pointer to function Member variable Integer Pointer to String Zero terminated string Unsigned integer Class “index into” “number of” [注释规则]

1)函数注释 函数开头必须注明函数功能、参数、返回值 2)变量注释 应说明变量的作用

3)其它注释 每个功能模块应加注释,如一个循环体、一个判断等都需要加注释。

第三讲 地理信息系统基本概念

第四讲 MAPGIS的基本概念和体系结构

1.MAPGIS二次开发的基本概念

成熟实用的地理信息系统(GIS)的重要标志就是它提供给用户的二次开发能力。MAPGIS提供完整的二次开发函数库。用户完全可以在MAPGIS平台上开发面向各自领域的应用系统。

Windows 98、Windows 2000、 Windows NT 图1-1 基于MAPGIS平台的应用程序 操作系统、MAPGIS开发库及MAPGIS应用程序的相互关系如下图所示:

MAPGIS应用程序 发库被封装于若干动态链接库(DLL)中。

MAPGIS 空间分析 窗口操作 ? 图库操作 图形、图象I/O 开发库 工作区管理 目前MAPGIS二次开发库主要以API函数、MFC类库、ActiveX 控件三种方式提供。开

API函数在使用方法上与Windows的API函数完全一样,因此是独立于开发工具的。无论您使用VC++、VB还是BC++、Dephi?,您在这些工具中如何调用Windows的API函数,您就怎么调用这些二次开发函数好了。

MAPGIS类库是为基于MFC(Microsoft Foundation Class)的开发者提供的多个可重用基类,将应用程序所需的常见基本功能作了封装,使用便利,改动灵活。开发者只需从类库派生即可使自己的程序获得从窗口显示控制到图形查询编辑的各项功能。

ActiveX 控件是MAPGIS完成组件化改造的成果之一,它们基于COM++模型,使得二次开发更为快捷便利,代码的可复用性更高。

上述各类开发接口提供了从最基本数据单元的读取、保存、更新和维护到MAPGIS地图库的建立和漫游,以及空间分析,图象处理等一系列功能。其中,API函数是基础,使用上最灵活,但技巧性要求也最高。所以本书大量篇幅用于介绍API函数。MAPGIS将不断丰富完善各类二次开发接口,以多种开发手段满足不同层次、不同应用的需求。这些函数所在的头文件如下表所示。

函数库名称 各种头文件 工作区基础函数 图形显示输出 窗口操作API函数 图形显示函数 图形编辑函数 拓扑操作函数 剪贴板操作函数 数字化设备参数设置及初始化调用函数 图框生成函数 投影变换 工作区投影变换 工程管理及拼版文件操作 窗口操作类库 输入编辑类库 工程管理类库 地图库读取显示 空间分析函数 Tin基本操作函数 Tin工作区函数 网络分析函数 统计分析和统计图制作函数 转换函数 客户化菜单 图像输入输出 表1 二次开发头文件

c,c++说明文件 MapGis.h Win_area.h Map_out.h Win_oper.h Mapdisp.h Mapedit.h Gistopo.h clippaste.h W32_Dig.h frmdll32.h projdll.h cordcvt.h Map_prj.h CGisView.h CGisEdit.h CPrjEdit.h Dbs_View.h Spc_anly.h TinBas32.h Tin_area.h Net_oper.h Att_Sta.h GisConv.h Custom.h msiio.h 2.MAPGIS基本术语

下面介绍MAPGIS系统中经常使用的一些基本概念。

地图:是按一定的数学法则和特有的符号系统及制图综合原则将地球表面的各种自然和社会经济现象缩小表示在平面上的图形,它反映制图现象的空间分布、组合、联系及在时空方面的变化和发展。

窗口:是用户坐标系中的一个矩形区域。用户可以改变这个矩形的大小、或移动位置来选择所要观察的图形。窗口就象照相机的取景框,当我们瞄准不同的地方,就选取了不同的景物。离景物越远框内包括的景物越多而成像就小;当我们靠近它,所包括的景物越少,成像越大。利用窗口技术,我们可以有选择的考察图形的某一部分,观察图形的细致部分或全局。

视区:是设备坐标系中的矩形区域,它是图形在设备上的显示区。可视区是在一定高程和一个或多个视点内,通过计算所得到的一个或多个视点的可见区域。

图层:用户按照一定的需要或标准把某些相关的物体组合在一起,我们称之为图层。如地图中水系构成一个图层,铁路构成一个图层等。我们可以把一个图层理解为一张透明薄膜,每一层上的物体在同一张薄膜上。一张图就是由若干层薄膜叠置而成的,图形分层有利于提高检索和显示速度。

靶区:是屏幕上用来捕获被编辑物体(图形)的矩形区域,它由用户在屏幕上形成。 控制点:控制点是指已知平面位置和地表高程的点,它在图形处理中能够控制图形形状,反映图形位置。

点元:点元是点图元的简称,有时也简称点,所谓点元是指由一个控制点决定其位置的有确定形状的图形单元。它包括字、字符串、子图、圆、弧、直线段等几种类型。它与“线上加点”中的点概念不同。

弧段:弧段是一系列有规则的,顺序的点的集合,用它们可以构成区域的轮廓线。它与曲线是两个不同的概念,前者属于面元,后者属于线元。

区/区域:区/区域是由同一方向或首尾相连的弧段组成的封闭图形。

拓扑:拓扑亦即位相关系,是指将点、线、及区域等图元的空间关系加以结构化的一种数学方法。主要包括:区域的定义、区域的相邻性及弧段的接序性。区域是由构成其轮廓的弧段所组成,所有的弧段都加以编码,再将区域看作由弧段代码组成;区域的相邻性是区域与区域间是否相邻,可由它们是否具有共同的边界弧段决定;弧段的接序性是指对于具有方向性的弧段,可定义它们的起始结点和终止结点,便于在网络图层中查讯路径或回路。拓扑性质是变形后保持不变的属性。

透明输出:与透明输出相对的为覆盖输出。用举例来解释这个名词,如果区与区、线与区或点图元与区等等叠加,用透明输出时,最上面的图元颜色发生了改变,在最终的输出时最上面图元颜色为它们的混合色。最终的输出如印刷品等。

数字化:数字化是指把图形、文字等模拟信息转换成为计算机能够识别、处理、贮存的数字信息的过程。

矢量:是具有一定方向和长度的量。一个矢量在二维空间里可表示为(Dx,Dy),其中Dx表示沿x方向移动的距离,Dy表示沿y方向移动的距离。

矢量化:矢量化是指把栅格数据转换成矢量数据的过程。

细化:细化是指将栅格数据中,具有一定宽度的图元,抽取其中心骨架的过程。 网格化(构网):网格化是指将不规则的观测点按照一定的网格结构及某种算法转换成有

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库二次开发初级培训班培训讲义(3)在线全文阅读。

二次开发初级培训班培训讲义(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/555315.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: