阅读:1504回复:5
一个DeskTop VBA的问题
<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> |
|
1楼#
发布于:2006-07-31 10:34
<P>THISDOCUMENT没有focusmap属性</P>
<P>可以使用ThisDocument.titile来代替ThisDocument.FocusMap.Name</P> |
|
|
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> |
|
3楼#
发布于:2006-07-31 11:22
<P>首先FocusMap是IMxDocument的属性,</P>
<P>Set objDoc = ThisDocument,<BR>这就是利用QI了,你可以看看组件开发的一些概念</P> |
|
|
4楼#
发布于:2006-07-31 11:29
<P>谢谢</P>
<P>我去Google一下COM中的QI概念</P> |
|
5楼#
发布于:2006-08-02 09:34
长了见识了!
|
|