本例要实现的是如何创建定制的Tool
本例要实现的是如何创建定制的Tool 要点 用户在类模块中实现Icommand(参见1.2.1)和ITool接口。ITool接口包括 mouse move, mouse button press/release, keyboard key press/release, double-click以及right click等事件、Cursor属性和Refresh方法。 ...
- 作者:gis来源:GIS帝国|2007年09月22日
本例要实现的是如何创建定制的Tool
要点
用户在类模块中实现Icommand(参见1.2.1)和ITool接口。ITool接口包括 mouse move, mouse button press/release, keyboard key press/release, double-click以及right click等事件、Cursor属性和Refresh方法。
Tool既具有Button的功能,又具有与ArcMAP界面交互的功能,Button的功能代码必须写在Icommand的OnClick事件中,而所有实现交互功能的代码必须写在Itool接口的各个事件中。Itool接口的各个事件,用户可以在其中写入相关代码,表示用户与ArcMAP界面交互时一旦触发某事件要实现的功能。
l 程序说明
程序在类模块中实现Icommand和Itool接口来创建自己的Tool.
l 代码
Option Explicit Private Sub Class_Initialize() Private Property Get ICommand_Bitmap() As esriCore.OLE_HANDLE Private Property Get ICommand_Caption() As String Private Property Get ICommand_Category() As String Private Property Get ICommand_Checked() As Boolean Private Property Get ICommand_Enabled() As Boolean Private Property Get ICommand_HelpContextID() As Long Private Property Get ICommand_HelpFile() As String Private Property Get ICommand_Message() As String Private Property Get ICommand_Name() As String Private Sub ICommand_OnClick() Private Sub ICommand_OnCreate(ByVal hook As Object) Private Property Get ICommand_Tooltip() As String Private Property Get ITool_Cursor() As esriCore.OLE_HANDLE Private Function ITool_Deactivate() As Boolean Private Function ITool_OnContextMenu(ByVal X As Long, ByVal Y As Long) As Boolean Private Sub ITool_OnDblClick() Private Sub ITool_OnKeyDown(ByVal keyCode As Long, ByVal Shift As Long) Private Sub ITool_OnKeyUp(ByVal keyCode As Long, ByVal Shift As Long) Private Sub ITool_OnMouseDown(ByVal Button As Long, ByVal Shift As Long, _ End Sub Private Sub ITool_OnMouseMove(ByVal Button As Long, ByVal Shift As Long, _ Private Sub ITool_OnMouseUp(ByVal Button As Long, ByVal Shift As Long, _ Private Sub ITool_Refresh(ByVal hDC As esriCore.OLE_HANDLE) Private Property Get ICommand_Name() As String Private Sub ICommand_OnClick() Private Sub ICommand_OnCreate(ByVal hook As Object) Private Property Get ICommand_Tooltip() As String Private Property Get ITool_Cursor() As esriCore.OLE_HANDLE Private Function ITool_Deactivate() As Boolean Private Function ITool_OnContextMenu(ByVal X As Long, ByVal Y As Long) As Boolean Private Sub ITool_OnDblClick() Private Sub ITool_OnKeyDown(ByVal keyCode As Long, ByVal Shift As Long) Private Sub ITool_OnKeyUp(ByVal keyCode As Long, ByVal Shift As Long) Private Sub ITool_OnMouseDown(ByVal Button As Long, ByVal Shift As Long, _ End Sub Private Sub ITool_OnMouseMove(ByVal Button As Long, ByVal Shift As Long, _ Private Sub ITool_OnMouseUp(ByVal Button As Long, ByVal Shift As Long, _ Private Sub ITool_Refresh(ByVal hDC As esriCore.OLE_HANDLE) |