MapBasic建立系统教程Word格式文档下载.docx

上传人:b****3 文档编号:17134599 上传时间:2022-11-28 格式:DOCX 页数:20 大小:427.43KB
下载 相关 举报
MapBasic建立系统教程Word格式文档下载.docx_第1页
第1页 / 共20页
MapBasic建立系统教程Word格式文档下载.docx_第2页
第2页 / 共20页
MapBasic建立系统教程Word格式文档下载.docx_第3页
第3页 / 共20页
MapBasic建立系统教程Word格式文档下载.docx_第4页
第4页 / 共20页
MapBasic建立系统教程Word格式文档下载.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

MapBasic建立系统教程Word格式文档下载.docx

《MapBasic建立系统教程Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《MapBasic建立系统教程Word格式文档下载.docx(20页珍藏版)》请在冰豆网上搜索。

MapBasic建立系统教程Word格式文档下载.docx

但MapBasic同样支持你创建一个全新的菜单系统,本程序就是采用了这种方式。

当运行该演示程序时,屏幕上将出现如图11.1所示的用户界面。

程序除了显示一个用户菜单及用户按钮盒外,还打开了一个地图窗口,在地图窗口中打开了几个MapInfo表。

其中菜单栏在屏幕的最上方,它包括:

系统菜单、演示菜单、对象、旅游查询、旅游统计图及帮助。

图11-1演示程序的显示情况

·

系统菜申.它由“打开表”、“关闭表”、“全部关闭”、“世界地图”和“退出”五个菜单项组成。

主要完成对MapInfo表的打开与关闭操作,并同时将它显示在一个地图窗口中。

其中“打开”是让用户选择并打开一个表,而“世界地图”是直接由MapBasic打开一个事先选定的表(World.tab);

“关闭”是让用户选择一个当前打开的表把它关闭,并保存相应工作空间,而“全部关闭”是将当前矽甫打开的表全部关闭;

“退出”是退出该演示程序恢复到原来的MapInfo界面。

演示菜单它包含一个“建介”了菜单。

该子菜单用于生成一个用户菜单、按钮盒或对话柜。

对应于此英申的MapBaslc功能模块就是生成用户界面的最典型方法。

菜单项“工具栏”实质上是一个对话框,只是该对话框只包含四个复选框:

主、常用、绘图、用户。

当选中了其中的一个或多个,相应的按钮盒就会在屏幕亡显示,否则就会隐藏按钮盒。

这里按钮盒“主”、“常用”和“绘图”是MapInfo系统自带的,而“用户”按钮盒则是由本演示程序自制的。

另外,你还会看到三个呈现灰色的菜单项“设置更新口令”、“数据备份”和“数据恢复”,由于这些功能在本程序中还没有全部制作进去,所以这里把这些菜单项设置为不可选。

对象MapBasic可以创建、修改对象,而且可以把一个对象赋给一个表的对象列。

该菜单包括一个“创建对象”子菜单和两个菜单项“折线转换成区域”、“区域转换成折线”。

其中两个菜单项是呈灰色的,表示它们不可选择。

而“创建对象”子菜单是用于创建MapInfo的图形对象,当用户选择了该子菜单下的一个菜单项时,程序首先将建立一个MapInfo表,并将该表地图化,接着为它追加一条记录,并把创建的对象赋值给该记录的对象列。

最后,程序将在一个地图窗口的一个可编辑图居中显示该对象。

旅游查询该菜申的所有菜单项都是不可选的。

用户可以根据自己的要求编写相应的程序以完成该项功能。

旅游统计图这个菜单的功能是将某些MapInfo表中的信息以统计图的形式显示在屏幕上,使得观察更加直观方便,当然你可以通过设置来指定统计图的格式。

帮助该菜单提供了MapInfo主要功能的在线查询,通过Internet访问MapInfo站点,以及有关本演水程序的一些信息。

2.按钮盒

按钮盒是用户界面的重要组成部分。

它以工具箱的形式为用户提供某些常用的功能。

MgpBasic中的按钮盒中的按钮有三种类型:

工具按钮、触发式按钮和按压式按钮(或称开关式按钮)。

一般地,当选中一个工具按钮时,应用程序并不立即调用相应的处理程序,而只是作好了一些必要的设置(如改变光标的形状),只有在选中该按钮后,继续在相应的窗口中进行单击或拖拉时应用程序才调用相应处理程序,如MapInfo“绘图”按钮盒中的“画线”、“画椭圆”等按钮就属此类。

触发式按钮是在选中该按钮时就立即调用处理程序,而按压式按钮是在“按压”或“恢复”该按钮时都调用处理程序。

用户可以根据各自的需要选择合适的按钮类型。

本演示程序有两处涉及按钮盒的创建,一个是在程序开始运行时就出现在屏幕上的“用户”按钮盒。

这里选择了一些对地图窗口进行操作的常用工具,如放大、缩小视图等。

该按钮盒是漂浮在整个桌面上的。

另外一个按钮盒是通过选择[演示菜单1>[建立]>[按钮盒]来创建的,该按钮盒是固定在窗口顶部,其中包含三个按钮,它们分别属于三种不同的类型。

3.对话框

该程序创建的一个最典型的对话框是通过选择[演示菜申—1>[建立3>[对话框]建立的。

它包括以下对话框控件:

StaticText、EditText、GroupBox、PopupMenu、ListBox、RadioGroup、SymbolPicker、CheckBox、OkButton和CancelButton。

另外,“系统菜单”中的“退出”菜单项、“演示菜单”中的“工具栏”菜单项、“帮助”菜单中的“关于”菜单项都是对话框的例子。

4.窗口

窗口也是用户界面的重要组成部分,Maplnfo包括多种类型的窗口,如地图窗口、浏览窗口、统汁窗口、布局窗口以及普通的信息窗口等。

本演示程序一执行就先打开一个地图窗口,并将窗口标题设置为“一个用户界面程序的演示示例”,另外,还可以用[系统菜单]>[打开]或[系统菜单]>[世界地图]打开一个地图窗口。

通过选择[旅游统计图]>[旅游人口]可以打开一个统计图窗口。

至于其他类型的统计图,本程序没有涉及,用户可以技类似的方法自己建立。

11.2.2源程序及其注解

1.源程序清单

‘一个用户界面演示程序:

Ye_Demo.mb

‘制作日期:

1998.7

‘目的:

快速掌握MapBasic程序开发.

‘内容:

生成用户界面的MapBasic程序

‘主要语句:

‘CreateMenu菜单名as生成菜单

‘子菜单名calling进程

‘CreateButtonPad按钮盒名As生成按钮盒

‘按钮类型[PushButton、ToolButton、Togg1eButton]

‘Dialog生成对话框

‘Title对话框标题

‘控制类型

‘***********标准定义文件***********

Include“mapbasic.def”

Include“icons.def”

Include“menu.def”

‘**********进程声明**********

DeclareSubMain

DeclareSubYe_denm

DeclareSubYe_ButtonPad

DeclareSubYe_Menu

DeclareSubYe_Tool

DeclareSubYe_graph

DeclareSubYe_Dialog

DeclareSubMenu_Test

DeclareSubButton_Test

DeclareSubYe_about

DeclareSubYe_Exit

DeclareSubYe_Button1

DeclareSubYe_Buttonn2

DeclareSubClose_all

DeclareSubClose_some

DeclareSubOpen_File

DeclareSubOpen_world

DeclareSubMake_ellipse

‘*************************

‘建立主菜单

SUBMain

0nerrorgotosub_err

CreateMenu“风景点”As

“按地区分”CallingYe_demo,

“按类型分”CallingYe_demo,

“按最佳旅游季节分”CallingYe_demo,

“(-“,

“风景点向导”CallingYe_demo

CREATEMENU“建立”As

“用户菜单“CallingYe_menu

“按钮盒\tCtrl+B/W^B/Mb/XCtrl+b”CallingYe_Buttonpad

“对话框\tCtrl+D/W^D/Md/XCtrl+d”CallingYe_Dialog

CreateMenu“创建对象”As

“点”CallingYe_demo,

“直线”CallingYe_demo,

“椭圆”CallingMmake_ellipse,

“折线”CallingYe_demo,

“矩形”CallingYe_demo,

“圆角矩形”CallingYe_demo,

“圆弧”CallingYe_demo,

“区域”CallingYe_demo,

“文本”CallingYe_demo,

“标签”CallingM_TOOLS_LABELER

CreateMENU“演示菜单”As‘****建立用户主菜单****

“建立”As“建立”,

“工具栏...”CallingYe_Tool,

“设置更新口令”CallingYe_demo,

“数据备份”CallingYe_demo,

“数据恢复”CallingYe_demo

CreateMenu“系统菜单”As

“打开表”ID111CallingOpen_File,

“关闭表”CallingClose_some,

“全部关闭”CallingClose_all,

“世界地图”IDll2CallingOpen_world,

“退出”CallingYe_exit

CreateMenu“旅游查询”As

“风景点”As“风景点”,

“风土人情”CallingYe_demo,

“路线”CallingYe_demo

CreateMenu“旅游统计图”As

“旅游收入”CallingYe_graph,

“旅游人数”CallingYe_demo,

“旅游淡旺季”CallingYe_demo

CreateMenu“帮助”As

“主题索引”CallingM_HELP_CONTENTS,

“Web页搜索”CallingM_HELP_CONNECT_MIFORUM,

“关于”CallingYe_about

CreateMenu“对象”As

“创建对象”As“创建对象”,

“折线转换成区域”CaingYe_demo,

“区域转换成折线”CallingYe_demo

AlterMenuItemYe_demoDisable

CreateMenuBarAs

“系统菜单”,”演示菜单”,”对象”,”旅游查询”,”旅游统计图”,”帮助”

‘’’****将所建立的用户菜单加入菜单栏*******

AlterBUTTONPAD“绘图”Hide‘**将不使用的按钮盒隐藏**

AlterBUTTONPAD“ODBC”HIDE

ALTERBUITONPAD“主”HIDE

ALTERBUTTONPAD“常用”HIDE

MENUBARSHOW‘****显示新菜单栏****

OpenTable“景点分布”As景点分布Interactive

OpenTable“省”As省Interactive

OpenTable“市”As市Interactive

MapFrom景点分布,市,省

Position(0.0520833,0.0520833)Units“in”

Width4.125Units“in”Height2.36458Units“in”

SetWindowFrontWindow()MaxScrollBarsOffAutoscrollOn

SetMap

CoordSysEarthProjection1,0

Center(119.6263825,29,3124845)

Zoom86.15402206Units“mi”

PreserveZoomDisplayZoom

XYUnits“degree”DistanceUnits“mi”AreaUnits“sqmi”

Layer1

DisplayGraphic

LabelLineArrowPositionRightFont(“Arial”,0,12,0)Pen(1,2,0)

Withname

ParallelOnAutoOffOverlapOffDuplicatesOnOffset2

VisibilityOn

Layer2

With市

Layer3

With省

CreateButtonPad“用户”As

ToolButton

IconMI_ICON_ARROW

CallingM_TOOLS_SELECTOR

HelpMsg“Selectobjectsforediting\n选择”

IconMI_ICON_ZOOM_IN

CallingM_TOOLS_EXPAND

HelpMsg“工具按钮\n放大”

IconMI_ICON_ZOOM_OUT

CallingM_TOOLS_SHRINK

HelpMsg“工具按钮\n缩小”

IconMI_ICON_ZOOM_QUESTION

HelpMsg“工具按钮\n问题”

IconMI_ICON_GRABBER

CallingM_TOOLS_RECENTER

HelpMsg“工具按钮\n平移”

IconMI_ICON_INFO

CallingM_TOOLS_PNT_QUERY

HelpMsg“工具按钮\n信息”

PushButton

IconMI_ICON_MISC_15

CallingYe_Button1

HelpMeg“用户开关按钮\n按压式”

ToggleButton

IconMI_ICON_MAPSYMB_20

CallingYe_Button2

HelpMsg“用户触发式按钮\n触发式”

Show

SetwindowFrontWindow()title“一个用户界面程序的演示示例”

ExitSub

Sub_err:

NoteError$()

EndSub

‘’****************

‘’建立菜单

SUBYe_Menu

Onerrorgotosub_err

Createmenu“新菜单”as

“菜单项一”id3000CallingMenu_Test,

“删除菜单”id3001CallingMenu_Test

altermenubaradd“新菜单”

menubarshows

exitsub

sub_err:

noteError$()

‘’***************

‘’菜单调试

‘’**************

SUBMenuTest

DoCaselnt(CommandInfo(CMD_INFO_MENUITEM))

Case3000

Nots“您已经选用了菜单项一”

Case3001

Note“新菜单将被删除”

Altermenubarremove“新菜单”

EndCase

Menubarshow

‘’**********************

‘’建立按钮盒

SUBYe_buttonPad

CreateBUTTONNPAD“用户按钮”As

ToolButton‘’具按钮

IconMI_ICON_ARROW‘图标

CursorMI_CURSOR_CROSSSHAIR‘光标

CallingButton_Test‘调用进程

Id1001‘ID号

HelpMsg“工具按钮\n工具按钮”‘帮助信息

PUSHBUTTON‘佃发式按钮

ICONMI_ICON_HELP

CallingButton_Test

HelpMsg“触发式按钮\n触发式按钮”

Id1002

IconMI_ICON_MAPSYMB_16

ID1003

HelpMsg“开关式按钮\n开关式按钮”

SHOW

FIXED

‘’*************

‘’按钮盒测试

SUBButton_Test

DOCaseInt(CommandInfo(CMD_INFO_TOOLBTN))

Case1001

Ifnumwindows()=OThen

NOTE“工具型技钮盒”+CHR$(10)+”请在地图窗口中使用”

Exitsub

ElseIfWindowInfo(FrontWindow(),WIN_INFO_TYPE)<

>

WIN_MAPPERThen

NOTE“工具型按钮盒”+CHR$(10)+”请在地图窗口中使用”

else

note“当前光标位置”+CHR$(10)+”x:

”+str$(CommandInfo(CMD_INFO_X))+”y:

”+str$(CommandInfo(CMD_INFO_Y))

EndIf

Case1002

Note“触发型按钮盒”

Case1003

Note“按压型按钮盒”

SubYe_Button1

SubYe_Button2

‘’**********

‘’建立对话框

SUBYe_dialog

DimfilenameasString

Dimcntrl_valasInteger

Dialog

Title“一个用户界面演示程序”

ControlStaticText

Title“面板文本”

Position20,5

ControlPopupMenu

Title“下拉式菜单选项—1选项—2:

Position90,5

ControlGroupBox

Title“群组选择框”

Position10,20

Width80Height40

ControlRadioGroup

Title“&

R单选一;

&

R单选二”

Position20,32

Valuel

Intocntrl_val

ControlListBox

Title“列表选择框;

选项—1;

选项—2;

选项—3选项—4;

选项—5;

选项—6”

Width80height40

Positionl05,25

Title“线型:

Position20,70

ControlPenPicker

Position60,70

Width20Height20

Title“编辑文本将存于:

Position10,100

Width160Height40

ControlEditText

Value“文件名”

Intofilename

Position20,120

ControlCheckBox

Title“功能确认框”

PositionlO,150

ControlOkButton

Title“确定”

Position50,180

ControlCan

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

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1