首页 百科知识 工具条设计

工具条设计

时间:2022-06-19 百科知识 版权反馈
【摘要】:四、工具条设计工具条是一个包含一个或多个命令按钮的浮动窗口。MapInfo提供了几个标准的工具条,利用MapBasic程序可以添加新的按钮到一个已存在的工具条中,或者创建一个全新的工具条。使用Alter ButtonPad语句可以在工具条中添加或删除按钮、删除工具条以及对工具条进行属性设置。

四、工具条设计

工具条是一个包含一个或多个命令按钮的浮动窗口。通过在工具条中选择一个按钮,可以执行不同类型的操作。MapInfo提供了几个标准的工具条,利用MapBasic程序可以添加新的按钮到一个已存在的工具条中,或者创建一个全新的工具条。与菜单项相同,每个按钮也有相应的处理程序。当用户选择了一个按钮后,MapInfo会自动调用这个按钮的处理程序。

MapBasic程序可以创建三种不同类型的按钮:ToolButton、ToggleButton和PushButton。ToolButton为工具按钮,当用户单击工具按钮时,一个工具将处于激活状态,并将始终保持这种状态直到用户选择了另外一个工具。单击ToolButton型按钮并不调用其事件处理程序,只有用户在地图窗口、浏览窗口或布局窗口中单击时,才调用该按钮的处理程序。ToggleButton为开关式按钮,当用户单击开关式按钮时,按钮会在按下或没按下两种状态中切换。每次用户单击开关式按钮,MapInfo都会调用该按钮的处理程序。PushButton为触发式按钮,当用户单击一个触发式按钮时,按钮立即复位,同时调用相应的处理程序。

1.创建工具条

利用Create ButtonPad语句创建工具条。其语法形式为:

Create ButtonPad{title_string|ID pad_num}As button_definition[button_definition…]

 [Title title_string]

 [Width w]

 [Position(x,y)[Units unit_name]]

 [ToolbarPosition(row,column)]

 [{Show|Hide}]

 [{Fixed|Float}]

其中,title_string为工具条标题;Pad_num为定义的标准工具条的ID值。Width子句指定工具条的宽度;Position子句和Position子句指定工具条浮动或停靠时的位置;Show和Hide关键字控制工具条的显示或隐藏;Fixed和Float关键字控制工具条的浮动或停靠。

button_definition为工具条按钮定义,其语法形式为:

{PushButton|ToggleButton|ToolButton}

  Calling{procedure|menu_code|OLE methodname|DDE server,topic}

  [ID button_id]

  [Icon n[File file_spec]]

  [Cursor n[File file_spec]]

  [DrawMode dm_code]

  [HelpMsg msg]

  [ModifierKeys{On|Off}]

  [Enable][Disable]

  [Check][Uncheck]

其中,PushButton、ToggleButton和ToolButton关键字指定了按钮的类型,Calling子句定义按钮对应调用的处理程序;ID子句指定按钮标识;Icon子句指定按钮图标,n为ICONS.DEF中定义的标准MapInfo图标代码,按钮图标也可由file_spec图标文件指定;Cursor子句指定当用户选择ToolButton按钮时鼠标的形状;Drawmode子句定义用户能单击并拖放,还是只能单击工具按钮,DrawMode只适用于Too1Button;HelpMsg子句定义按钮在状态栏的提示信息(msg中\n之前的字符串)和工具提示信息(msg中\n之后的字符串);Modifierkeys子句控制Shift和Ctrl键在用户拖曳鼠标时是否有效,缺省为off;Check和Uncheck关键字控制ToggleButton型按钮的选择与不选择。

以下为创建工具条的例程,分别创建了三种不同类型的按钮。

Create ButtonPad"Utils"As

 PushButton

   HelpMsg"Choose this button to display query dialog"

   Calling button_sub_proc

   Icon MI_ICON_ZOOM_QUESTION

ToolButton

  HelpMsg"Use this tool to draw a new route"

  Calling tool_sub_proc

  IconMI_ICON_CROSSHAIR

  DrawModeDM_CUSTOM_LINE

ToggleButton

  HelpMsg"Turn proximity checking on/off"

  Calling toggle_prox_check

  Icon MI_ICON_RULER

  Check

Title"Utilities"

Width 3

Show

使用Create ButtonPads As Default语句可以取消用户设置的非标准按钮条并恢复MapInfo的标准按钮条状态。

2.修改工具条

创建工具条后,可以用Alter Button语句和Alter ButtonPad语句对其进行各种修改。

(1)Alter ButtonPad语句。使用Alter ButtonPad语句可以在工具条中添加或删除按钮、删除工具条以及对工具条进行属性设置。该语句的语法形式为:

Alter ButtonPad{current_title|ID pad_num}

  [Add button_definition[button_definition…]]

  [Remove{handler_num|ID button_id}[…]]

  [Title new_title]

  [Width w]

  [Position(x,y)[Units unit_name]]

  [ToolbarPosition(row,column)]

  [{Show|Hide}]

  [{Fixed|Float}]

  [Destroy]

其中,current_title为工具条名,pad_num为工具条ID号。Add子句可以在工具条中添加按钮,按钮由button_definition定义,其用法与Create ButtonPad语句类似;Remove子句删除指定的按钮;其他子句如Title、Width、Position、ToolbarPosition及Show/Hide和Fixed/Float关键字可以对工具条的标题、宽度、位置、是否显示、是否浮动进行重新设置。要删除工具条,应包含Destroy关键字。一旦工具条被删除,将不再出现在[Options]>[Toolbars dialog]中。

(2)Alter Button语句。使用Alter Button语句可以对工具条中按钮进行属性设置,其语法形式为:

Alter Button{handler|ID button_id}

  [{Enable|Disable}]

  [{Check|Uncheck}]

其中,handler为分配给按钮的处理程序,处理程序可以是MapBasic的过程名或源于MENU.DEF的定义的标准命令代码。如果Alter Button指定的是处理程序,则MapInfo修改所有调用该处理程序的按钮,如果语句指定的是按钮ID号,则MapInfo只修改ID号对应的按钮。Enable和Disable关键字设置按钮为可用或不可用;Check与Uncheck关键字设置按钮为选择或不选择。

3.获取按钮事件信息

CommandInfo()函数用于在按钮处理程序中获取用户选择按钮的信息。在按钮处理程序中,可以通过多次调用CommandInfo()函数获取用户选择哪个按钮、鼠标单击点处的x、y坐标以及用户在点击时是否按下了Shift键等。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈