MapBasic程序设计

MapBasic的学习 用户界面制作

第10章 MapBasic程序设计

10.1 用户界面的创建

用户界面是应用程序的重要组成部分,MapBasic提供了制作MapInfo用户界面所需的全部工具。通过MapBasic,可以为MapInfo创建一个自定义的用户界面。MapBasic程序可以控制下面给出的用户界面元素:

·菜单(Menus):MapBasic程序可以在己存在的菜单上增加菜单项,从原有菜单中移去菜单项,或建立一个全新的菜单。

·对话框(Dialogs): MapBasic程序可以显示一个标准对话框或特制一个自定义的对话框。

.窗口(Windows):MapBasic程序可以显示标准MapBasic窗口(如:地图窗口、浏览窗口),并可定制这些窗口的内容。MapBasic还可以在一个特殊的信息窗口或MapInfo状态栏上显示一些信息。

·按钮盒(Buttonpad):MapBasic程序可以把新的按钮增加到已存在的按钮盒中,或创建一个全新的按钮盒。

10.1.1 用户事件的处理

在上一章中,我们已经介绍了有关事件处理程序的基本原理。在图形用户界面环境中,当用户产生了一个事件时,软件必须有相应的响应。因此,当用户选择了一个菜单项,软件可能要显示一个对话框,也可能是执行一些别的操作,如:打开或关闭一个表或者窗口。一般地,当用户产生一个事件后,软件必须处理这个事件。

1.菜单事件的处理

如果一个MapBasic应用程序创建了一个用户菜单,并且用户选择了一个菜单项,那么MapBasic应用程序将处理这个菜单选择事件。典型地,MapBasic应用程序通过调用一个过程来处理该事件。这种情况下,我们称这个过程叫事件处理程序或简称处理程序。因此,创建一个用户菜单可分两步:

·用Create Menu语句或Alter Menu语句定义一个菜单结构。

·为每一个菜单项指定一个处理程序,例如:

Create Menu “TextBox” As “&Create Text Boxes...” Calling create_sub “Close TextBox” Calling bye,

“About TextBox” Calling about

上面的例子用Create Menu语句创建了一个带有三个菜单项的用户菜单,每个菜单项包含一个Calling子句。每一个Calling子句后面都跟有一个过程名,当用户选择了TextBox菜单中的一个菜单项时,MapBasic自动调用相应的过程。例如,用户选择了菜单项[Create Text Boxes ],则MapBasic自动调用过程create_sub。该过程就是作为这个菜单项的处理程序。

2.按钮事件的处理

按钮盒中的每一个按钮都有一个处理程序,与Create Menu语句类似,Create ButtonPad语句也包含一个Calling语句,它可以让你指定一个子过程作为相应的处理程序。当用户选择了该按钮时,MapBasic就自动调用该子过程序以响应该按钮盒事件。

3.对话框事件的处理

MapBasic的用户对话框也可以调用一个过程、因此,如果你创建的对话框中包含一个

MapBasic程序设计相关文档

最新文档

返回顶部