Option Explicit
'******************************************************************************
*****
'获取指定窗口的设备场景
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
'为指定的设备场景指定一个新的当前画笔位置
Private Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal
Y As Long, lpPoint As POINTAPI) As Long
'从当前位置连到一个指定的点
Private Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y
As Long) As Long
Private Type POINTAPI
lngX As Long
lngY As Long
End Type
Dim m_apiPoint As POINTAPI
Dim m_lngMapDc As Long '设备场景变量
Dim m_dblMoveX As Double '每次绘线的起点 X
Dim m_dblMoveY As Double '每次绘线的起点 Y
Dim m_ptRule As New MapXLib.Point '测距时的当前点
Dim m_ptsRule As New MapXLib.Points '测距时的点集(用来生成直线)
Dim m_blnRulerFlag As Boolean '测量标志
Dim m_dblDistanceTemp As Double ' 测 距 时 从 Map1_MouseDown 到
Map1_MouseMove 的直线距离
Dim m_dblDistanceSum As Double '测距时从第一次 Map1_ToolUse 到
Map1_DblChick 的折线距离
Dim m_dblRuleWindowLeft As Double '"距离"窗体的左边位置
Dim m_dblRuleWindowTop As Double '"距离"窗体的顶部位置
'******************************************************************************
*****
Dim m_sngMoveX As Single '由 Map1_MouseMove 传给 Map1_MapViewChange
的地图屏幕坐标 X
Dim m_sngMoveY As Single '由 Map1_MouseMove 传给 Map1_MapViewChange
的地图屏幕坐标 Y
Const PolyRulerTool As Integer = 101 '折线测距工具编号
Private Sub Command1_Click()
Dim lyrTemp As MapXLib.Layer