阅读:1790回复:6
请教熟悉ArcObjects Developer Kit的高手我用AO+VB开发应用程序,使用了ArcObjects Developer Kit__Samples__Controls__ Commands__PageLayout这个DLL,运行时基本正常,但在选择了地图元素后按DEL键时,总是出错,下面是SelectToo_class中的代码,我感觉是有错,可不知怎么改,有遇到过这个问题的高手么?
Private Sub ITool_onKeyUp(ByVal keyCode As Long, ByVal Shift As Long) On Error GoTo ErrorHandler 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_onKeyUp " ; c_ModuleFileName ; " " ; GetErrorLineNumberString(Erl), Err.Number, Err.Source, Err.Description, 1 End Sub 程序中只是DIM了pGraCont变量,后面没有相应的SET语句,这样可以么? 有做过类似的程序,能实现选择后删除功能的么??? |
|
1楼#
发布于:2004-09-07 10:19
还以为有高手帮我呢,白高兴了 |
|
2楼#
发布于:2004-09-10 13:29
把出错信息也一并提出来呀 |
|
3楼#
发布于:2004-09-17 16:17
顶~ |
|
4楼#
发布于:2004-09-17 16:52
这当然会出错了,因为你的Dim pGraCont As IGraphicsContainer 这个变量根本就没有赋值, 应该赋值,加上一句set pGraCont = ipActiveView就可以了,或者set pGraCont=pGraContSel就可以了 |
|
5楼#
发布于:2004-09-23 10:46
高手!!!! ![]() |
|
|