阅读:2155回复:6
PageLayoutControl
<P>AO9.0+VB,我想在PageLayoutControl中用鼠标选中添加在上面的文本要素\比例尺\图例等,应该怎样实现?<BR> 可以使用IGraphicsContainer中的LocateElements 方法进行定位。<BR>具体应该怎么做?帮助里面也没有例子,给点详细的提示.</P>
<P><img src="images/post/smile/dvbbs/em12.gif" /></P> |
|
1楼#
发布于:2005-11-04 11:34
在帮助里面不是有提示吗?一般情况下这个方法与<a href="ms-its:D:\Program target="_blank" >IPageLayoutControlEvents::OnMouseDown</A>事件结合使用!
|
|
2楼#
发布于:2005-11-04 11:38
能不能给点详细的提示,帮助里的例子讲的很简单.
|
|
3楼#
发布于:2005-11-04 11:47
<P><a href="http://forums.esri.com/Thread.asp?c=93;f=993;t=158293#462936" target="_blank" >http://forums.esri.com/Thread.asp?c=93;f=993;t=158293#462936</A></P>
<P>这里面有一个类似你的功能的讨论和代码,你先看一看,有什么问题在讨论!</P> |
|
4楼#
发布于:2005-11-04 11:48
我感觉ESIR的在线帮助论坛是一个非常不错的地方。在那里简单的复杂的问题一般都能找到答案!
|
|
5楼#
发布于:2005-11-04 12:19
<P>下面这段代码是移动一个TEXT要素,看看有没有用:</P>
<P>Private Sub SelectElement(intTract_NO)<BR> <BR> Dim pPnt As IPoint<BR> Dim x As Double: Dim y As Double<BR> Set pPnt = New Point<BR> x = 3.979413<BR> y = 0.890013<BR> pPnt.x = x<BR> pPnt.y = y<BR> <BR> Dim pEnumElement As IEnumElement<BR> 'Grab hold of the IEnumElement interface by locating any elements at the point<BR> Set pEnumElement = PageLayoutControl1.GraphicsContainer.LocateElements(pPnt, 0.01)<BR> 'Exit if no elements located<BR> If pEnumElement Is Nothing Then Exit Sub<BR> <BR> Dim pElement As IElement<BR> pEnumElement.Reset<BR> 'Grab hold of the IElement interface through the first located element<BR> Set pElement = pEnumElement.Next<BR> <BR> 'Loop through the located elements<BR> Do While Not pElement Is Nothing<BR> 'Grab hold of the ISelectionTracker interface through the element<BR> Set m_pSelectionTracker = pElement.SelectionTracker<BR> Set m_pElement = pElement<BR> If TypeOf pElement Is ITextElement Then<BR> Dim pTextElement As ITextElement<BR> pTextElement.Text = "Tract " ; intTract_NO<BR> Exit Do<BR> End If<BR> Set pElement = pEnumElement.Next<BR> Loop<BR><BR>End Sub</P> |
|
6楼#
发布于:2005-11-07 09:35
我觉得VBA和VB中的区别很大,在VBA中的鼠标事件不知道在VB中该如何实现?
|
|