ArcGIS二次开发之一:在ArcMap中启动ArcCatalog的代码实现

    在ArcMap的快捷工具栏中,可以利用快捷按钮直接启动ArcCatalog,下面的代码将实现这一操作。 

Sub ShowArcCatalog()
    Dim pAppROT As AppROT
    Dim pAppROTCountInt As Integer
    Dim pAppROTCount As Integer
    Dim pCommand As ICommandItem
    Dim pAppWin As IWindowPosition
    Dim i As Integer
 
    Set pAppROT = New AppROT
    pAppROTCountInt = pAppROT.Count
 
    ' 启动ArcCatalog
    Set pCommand = Application.Document.CommandBars.Find(ArcID.Tools_Catalog)
    pCommand.Execute
 
    '  将ArcCatalog应用程序添加入AppRPT
    Do Until pAppROTCount = (pAppROTCountInt + 1)
        pAppROTCount = pAppROT.Count
    Loop
 
   ' 获取正在运行的ArcCatalog程序
    If TypeOf pAppROT.Item(pAppROTCount - 1) Is IGxApplication Then
      Set pAppWin = pAppROT.Item(pAppROTCount - 1)
      pAppWin.Move 10, 10, 600, 500
    End If
End Sub

    这段程序实现的关键在于对AppROT类和接口的理解,AppROT的全称是application running object table,用来记录当前正在运行的ArcGIS应用程序,但它只记录由IApplication实现的对象。当ArcGIS的应用程序运行的时候会自动向AppROT 注册,当关闭的时候也会自动清除。所以可以通过AppROT获取正在运行的所有ArcGIS应用程序,同时ArcObjects开发者也可以将自己利用IApplication产生的对象向AppRPT注册。

    AppROT主要实现IAppROT接口,利用这个接口提供的Add和Remove方法实现向AppROT添加和移出对象,利用Count方法可以获取当前运行的ArcGIS应用程序总数。而Item方法则提供了当前运行的ArcGIS应用程序索引,利用Item方法开发者可以方面的获取任何一个正在运行的程序。

    ArcID.Tools_Catalog主要是获取ArcCatalog对象,ArcID提供ArcGIS内置的菜单、工具栏等,比如如果想获取添加数据按钮,则使用ArcID.File_AddData,每一个ArcID都有一个唯一的标识码,开发者也可以直接通过标识码来进行获取。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值