wangyx
路人甲
路人甲
  • 注册日期2004-04-13
  • 发帖数35
  • QQ120641819
  • 铜币272枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1614回复:2

IMapBookMarks的问题

楼主#
更多 发布于:2005-05-24 11:33
<P>我写了一个函数</P>
<P>Public Function GetBookMarkByName(name As String, pMap As IMap) As IAOIBookmark
    Dim pMapBkMks As IMapBookmarks
    Set pMapBkMks = pMap
    
    If pMapBkMks Is Nothing Then Exit Function
    </P>
<P>    Dim pBkMk As ISpatialBookmark
    Set pBkMk = pMapBkMks.Bookmarks.Next
    If pBkMk Is Nothing Then Exit Function
    
     Do While Not pBkMk Is Nothing
        If pBkMk.name = name Then
            Set GetBookMarkByName = pBkMk
            Exit Function
        End If
        Set pBkMk = pMapBkMks.Bookmarks.Next
    Loop</P>
<P>    Set GetBookMarkByName = Nothing
    
End Function</P>
<P>可是有问题,我发现循环中的Set pBkMk = pMapBkMks.Bookmarks.Next
好像没有作用,形成一个死循环。有谁用过IMapBookmarks,来帮忙看看</P>
喜欢0 评分0
cnwangyx@163.com 13430227558 QQ:120641819
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15947
  • QQ554730525
  • 铜币25339枚
  • 威望15364点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2005-05-25 10:48
你可以在开发帮助里找<H1>Bookmark Manager </H1><P>这个例子</P>
举报 回复(0) 喜欢(0)     评分
zhpzh1
路人甲
路人甲
  • 注册日期2004-03-12
  • 发帖数45
  • QQ
  • 铜币399枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2005-06-01 11:37
<P>This sample shows one method for creating a new Area of Interest<BR>bookmark:<BR>Public Sub AddSpatialBookMark()<BR>Dim pMxDoc As IMxDocument<BR>Dim pMap As IMap<BR>Dim pActiveView As IActiveView<BR>Dim pAreaOfInterest As IAOIBookmark<BR>Dim pMapBookmarks As IMapBookmarks<BR>Set pMxDoc = Application.Document<BR>Set pMap = pMxDoc.FocusMap<BR>Set pActiveView = pMap<BR>'Create a new bookmark and set its location to the focus map's<BR>'current extent<BR>Set pAreaOfInterest = New AOIBookmark<BR>Set pAreaOfInterest.Location = pActiveView.Extent<BR>'Give the bookmark a name<BR>pAreaOfInterest.Name = "My bookmark"<BR>'Add the bookmark to the map's bookmark collection.This will add<BR>'the bookmark to the Bookmarks menu accessible from the View menu<BR>Set pMapBookmarks = pMap<BR>pMapBookmarks.AddBookmark pAreaOfInterest<BR>End Sub<BR>This sample shows one way to find an existing spatial bookmark andzoom to its stored extent:<BR>Public Sub ZoomToBookmark()<BR>Dim pMxDoc As IMxDocument<BR>Dim pMapBookmarks As IMapBookmarks<BR>Dim pEnumBookmarks As IEnumSpatialBookmark<BR>Dim pBookmark As ISpatialBookmark<BR>Set pMxDoc = Application.Document<BR>Set pMapBookmarks = pMxDoc.FocusMap<BR>Set pEnumBookmarks = pMapBookmarks.Bookmarks<BR>pEnumBookmarks.Reset<BR>Set pBookmark = pEnumBookmarks.Next<BR>Do While Not pBookmark Is Nothing<BR>If pBookmark.Name = "My bookmark" Then<BR>pBookmark.ZoomTo pMxDoc.FocusMap<BR>pMxDoc.ActiveView.Refresh<BR>Exit Sub<BR>End If<BR>Set pBookmark = pEnumBookmarks.Next<BR>Loop<BR>End Sub</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部