本例要实现的是如何创建定制的MultiItem。
l 要点
需要实现IMultiItem接口,但不需要同时实现Icommand接口。IMultiItem接口包括Caption,itemCaption,ItemBitmap,ItemEnabled,ItemChecked, Message及Name等属性和OnItemClick, OnPopup事件。
·itemCaption,ItemBitmap,ItemEnabled,ItemChecked等属性的参数index表示当前Item的下标索引。
·OnPopup事件的参数hook同Icommand接口的OnCreate事件的参数hook一样,传入ArcGIS的Application实例,同时,该事件返回将要显示的Item数目。
·OnItemClick事件的参数Index表示用户当前点击的Item的索引,用户根据该索引分别定义点击各个Item时实现的功能。
l 程序说明
程序在类模块中实现IMultiItem接口来创建定制自己的MultiItem。
l 代码
Option Explicit Implements IMultiItem Private m_pApp As IApplication Private m_pMxDoc As IMxDocument Private m_pMap As IMap Private m_pLayerCnt As Long Private Property Get IMultiItem_Caption() As String End Property Private Property Get IMultiItem_HelpContextID() As Long End Property Private Property Get IMultiItem_HelpFile() As String End Property Private Property Get IMultiItem_ItemBitmap(ByVal Index As Long) As esriCore.OLE_HANDLE End Property Private Property Get IMultiItem_ItemCaption(ByVal Index As Long) As String Dim i As Integer Private Property Get IMultiItem_ItemChecked(ByVal Index As Long) As Boolean Private Property Get IMultiItem_ItemEnabled(ByVal Index As Long) As Boolean Private Property Get IMultiItem_Message() As String Private Property Get IMultiItem_Name() As String Private Sub IMultiItem_OnItemClick(ByVal Index As Long) Private Function IMultiItem_OnPopup(ByVal hook As Object) As Long |