程序里如何调用ArcMap中现有的功能模块
- 产品教程
- 2007-09-15
- 136热度
- 0评论
程序里如何调用ArcMap中现有的功能模块?许多朋友问到我这个问题,今天我做个小例子.
如何调用ArcMap中现有的功能,比如菜单栏、工具栏中的某些功能。这些都可以通过UID来实现。本例是通过UID调用“另存为”功能。
可以通过两种方法得到UID:
方法一:运用ArcID模块
l 要点
通过ArcID获得UID,ArcID是ArcMap的VBA中的模块。只需要知道要调用功能的名称运用代码就可以实现。
l 程序说明
程序通过运用ArcID模块和命令名称来实现调用“另存为”的功能。
l 代码
Sub ExecuteCmd()
Dim pCommandItem As ICommandItem
' Use ArcID module and the Name of the SaveAs command
Set pCommandItem = Application.Document.CommandBars.Find(arcid.File_SaveAs)
pCommandItem.Execute
End Sub
方法二:直接写代码
l 要点
通过直接写代码获得UID实现调用功能。
l 程序说明
写入文件菜单项的GUID(CLSID或ProgID)来调用文件菜单项,同时还需要通过设置Subtype的值来调用文件菜单项的“另存为”功能。
l 代码
Sub ExecuteCmd2()
Dim pUID As New UID
Dim pCommandItem As ICommandItem
' Use the GUID of the Save command
pUID.Value = "{119591DB-0255-11D2-8D20-080009EE4E51}"
' or you can use the ProgID
' pUID.Value = "esriCore.MxFileMenuItem"
pUID.SubType = 3
Set pCommandItem = Application.Document.CommandBars.Find(pUID)
pCommandItem.Execute
End Sub