阅读:1791回复:6
请教熟悉ArcObjects Developer Kit的高手
我用AO+VB开发应用程序,使用了ArcObjects Developer Kit__Samples__Controls__ Commands__PageLayout这个DLL,运行时基本正常,但在选择了地图元素后按DEL键时,总是出错,下面是SelectToo_class中的代码,我感觉是有错,可不知怎么改,有遇到过这个问题的高手么?
<P>Private Sub ITool_<I>onKey</I>Up(ByVal keyCode As Long, ByVal Shift As Long) On Error GoTo ErrorHandler</P> <P> m_ipRubEnvelope.Constraint = esriEnvelopeConstraintsNone m_ipRubResizeEnvelope.Constraint = esriEnvelopeConstraintsNone ' if 'Delete' (keycode = 46) is pressed then delete any selected elements If keyCode = 46 Then Dim ipActiveView As IActiveView Dim pGraCont As IGraphicsContainer ?????此变量不需要赋值么? Dim pGraContSel As IGraphicsContainerSelect Dim pEnumElem As IEnumElement Dim pElem As IElement Set ipActiveView = m_pHook.ActiveView Set pGraContSel = ipActiveView Set pEnumElem = pGraContSel.SelectedElements pEnumElem.Reset Set pElem = pEnumElem.Next Do While Not pElem Is Nothing pGraCont.DeleteElement pElem Loop ipActiveView.PartialRefresh esriViewGraphicSelection, Nothing, Nothing End If Exit Sub ErrorHandler: HandleError True, "ITool_<I>onKey</I>Up " ; c_ModuleFileName ; " " ; GetErrorLineNumberString(Erl), Err.Number, Err.Source, Err.Description, 1 End Sub</P> <P>程序中只是DIM了pGraCont变量,后面没有相应的SET语句,这样可以么? </P> <P>有做过类似的程序,能实现选择后删除功能的么???</P> |
|
1楼#
发布于:2004-09-23 10:46
<P>高手!!!!</P><img src="images/post/smile/dvbbs/em02.gif" />
|
|
|
2楼#
发布于:2004-09-17 16:52
<P>这当然会出错了,因为你的Dim pGraCont As IGraphicsContainer 这个变量根本就没有赋值,</P><P>应该赋值,加上一句set pGraCont = ipActiveView就可以了,或者set pGraCont=pGraContSel就可以了</P>
|
|
3楼#
发布于:2004-09-17 16:17
<P>顶~</P>
|
|
4楼#
发布于:2004-09-10 13:29
<P>把出错信息也一并提出来呀</P>
|
|
5楼#
发布于:2004-09-07 10:19
<P>还以为有高手帮我呢,白高兴了</P>
|
|