阅读:1781回复:2
IMapBookMarks的问题
<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> |
|
|
1楼#
发布于:2005-05-25 10:48
你可以在开发帮助里找<H1>Bookmark Manager </H1><P>这个例子</P>
|
|
|
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>
|
|