legend1900
路人甲
路人甲
  • 注册日期2004-12-13
  • 发帖数9
  • QQ
  • 铜币138枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1368回复:5

一个DeskTop VBA的问题

楼主#
更多 发布于:2006-07-31 09:53
<P>以下代码,是显示当前ArcGIS DeskTop编辑窗口地图的名称<BR>Test可以顺利执行,Test1就出错</P>
<P>Sub Test()</P>
<P>    Dim objDoc As IMxDocument<BR>    Set objDoc = ThisDocument<BR>    MsgBox objDoc.FocusMap.Name</P>
<P>End Sub</P>
<P>Sub Test1()</P>
<P>    MsgBox ThisDocument.FocusMap.Name</P>
<P>End Sub </P>
<P>请教各位,这是什么原因</P>
喜欢0 评分0
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15947
  • QQ554730525
  • 铜币25339枚
  • 威望15364点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2006-07-31 10:34
<P>THISDOCUMENT没有focusmap属性</P>
<P>可以使用ThisDocument.titile来代替ThisDocument.FocusMap.Name</P>
举报 回复(0) 喜欢(0)     评分
legend1900
路人甲
路人甲
  • 注册日期2004-12-13
  • 发帖数9
  • QQ
  • 铜币138枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2006-07-31 11:03
<P>可是这样写又是可以的哦</P>
<P>Dim objDoc As IMxDocument<BR>Set objDoc = ThisDocument<BR>MsgBox objDoc.FocusMap.Name</P>
<P>这里的ObjDoc不就是ThisDocument嘛</P>
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15947
  • QQ554730525
  • 铜币25339枚
  • 威望15364点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
3楼#
发布于:2006-07-31 11:22
<P>首先FocusMap是IMxDocument的属性,</P>
<P>Set objDoc = ThisDocument,<BR>这就是利用QI了,你可以看看组件开发的一些概念</P>
举报 回复(0) 喜欢(0)     评分
legend1900
路人甲
路人甲
  • 注册日期2004-12-13
  • 发帖数9
  • QQ
  • 铜币138枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2006-07-31 11:29
<P>谢谢</P>
<P>我去Google一下COM中的QI概念</P>
举报 回复(0) 喜欢(0)     评分
wavvylia
路人甲
路人甲
  • 注册日期2003-07-28
  • 发帖数384
  • QQ
  • 铜币555枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2006-08-02 09:34
长了见识了!
举报 回复(0) 喜欢(0)     评分
游客

返回顶部