ran_rgp
路人甲
路人甲
  • 注册日期2006-10-13
  • 发帖数6
  • QQ
  • 铜币133枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1481回复:0

DRAW TEXT 实例

楼主#
更多 发布于:2006-12-05 10:59
<P> Option Explicit</P>
<P>Dim g_line As MapObjects2.Line<BR>Dim pts As MapObjects2.Points<BR>Dim tHeight As Double</P>
<P>'"重置"按钮单击响应事件<BR>Private Sub Command1_Click()<BR>  '清空之前生成的几何图形<BR>  Set g_line = Nothing<BR>  Set pts = Nothing<BR>  Map1.TrackingLayer.Refresh True<BR>End Sub</P>
<P>'"全图显示"按钮单击响应事件<BR>Private Sub Command2_Click()<BR>  Map1.Extent = Map1.FullExtent<BR>End Sub</P>
<P>Private Sub Form_Load()<BR>  '连接地理数据库<BR>  '这里是MapObjects自带的World数据<BR>  '默认路径在C:\Program Files\ESRI\MapObjects2\Samples\Data\World<BR>  Dim dc As New DataConnection<BR>  dc.Database = "C:\Program Files\ESRI\MapObjects2\Samples\Data\World"<BR>  If Not dc.Connect Then End<BR>  <BR>  '读入country图层<BR>  Dim layer As New MapLayer<BR>  Set layer.GeoDataset = dc.FindGeoDataset("country")<BR>  layer.Symbol.Color = moPaleYellow<BR>  Map1.Layers.Add layer<BR>  tHeight = Map1.Extent.Height / 8<BR>End Sub</P>
<P>Private Sub Map1_AfterTrackingLayerDraw(ByVal hDC As StdOle.OLE_HANDLE)<BR>  '确定g_line是不是空<BR>  If Not g_line Is Nothing Then<BR>    '确认g_line有至少两个顶点<BR>    If pts.Count > 1 Then<BR>      Dim tSym As New TextSymbol<BR>      '使用TextBox的字体<BR>      Set tSym.Font = Text1.Font<BR>      Dim sym As New Symbol<BR>      sym.Color = moRed<BR>      '使用DrawShape方法在Map Control中使用sym符号显示g_line图形<BR>      Map1.DrawShape g_line, sym<BR>      tSym.Height = tHeight<BR>      '使用DrawText方法在Map Control中使用tSym符号显示Text1中的文字<BR>      Map1.DrawText Text1.Text, g_line, tSym<BR>    End If<BR>  End If<BR>End Sub</P>
<P>Private Sub Map1_MouseDown(Button As Integer, Shift As Integer, _<BR>                            x As Single, y As Single)<BR>  If Button = 1 Then<BR>    '鼠标左键被单击<BR>    <BR>    '当线段对象不存在时建立Line对象<BR>    If g_line Is Nothing Then<BR>      Set g_line = New MapObjects2.Line<BR>    End If<BR>    <BR>    '建立Points对象<BR>    If pts Is Nothing Then<BR>      Set pts = New MapObjects2.Points<BR>    End If<BR>    <BR>    '建立Point对象,并将其添加到Line对象<BR>    Dim p As Point<BR>    Set p = Map1.ToMapPoint(x, y)<BR>    pts.Add p<BR>    If pts.Count = 1 Then<BR>        g_line.Parts.Add pts<BR>        Set pts = g_line.Parts(0)<BR>    End If<BR>    <BR>    '刷新TrackingLayer层<BR>    Map1.TrackingLayer.Refresh True<BR>  Else<BR>    '鼠标右键被单击<BR>    '放大地图<BR>    Dim r As MapObjects2.Rectangle<BR>    Set r = Map1.TrackRectangle<BR>    If Not r Is Nothing Then Map1.Extent = r<BR>  End If<BR>End Sub</P>
<P><BR> </P>
喜欢0 评分0
游客

返回顶部