在实际操作的时候,我碰到的问题是,在supermap控件上无法画任何东西,希望有缘人路过,能给予指点,小弟在此谢过。我的想法是应该最后一块的编码有问题吧!
以下是具体的代码:
'操作说明:
' 1、新建数据源:默认创建名为TempDataSource的数据源
' 2、新建数据集:新建点、线、面、文本、CAD类型的数据集
' 3、绘制对象:绘制点、线、折线、面、文本、圆和圆弧对象
Dim objError As New soError
Private Sub Form_Load()
'LoadResStrings Me '用以从资源 (.res) 文件装载字符串
SuperMap1.Connect SuperWorkspace1.Handle
SuperLegend1.Connect SuperMap1.Handle
SuperWkspManager1.Connect SuperWorkspace1.Handle
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set objError = Nothing
SuperLegend1.Disconnect
SuperWkspManager1.Disconnect
SuperMap1.Close
SuperMap1.Disconnect
SuperWorkspace1.Close
End Sub
Private Sub mnuCreateCircle_Click()
SuperMap1.Action = scaEditCreateCircle
End Sub
Private Sub mnuCreateDataset_CAD_Click()
Dim objDataset As soDataset
Dim objDataSource As soDataSource
Set objDataSource = SuperWorkspace1.Datasources(1)
'创建复合数据集
'Create CAD dataset
Set objDataset = objDataSource.CreateDataset("Dataset_CAD", scdCAD, scoDefault)
SuperWkspManager1.Refresh
Set objDataset = Nothing
Set objDataSource = Nothing
End Sub
Private Sub mnuCreateDataset_Line_Click()
Dim objDataset As soDataset
Dim objDataSource As soDataSource
Set objDataSource = SuperWorkspace1.Datasources(1)
'创建线数据集
'Create line dataset
Set objDataset = objDataSource.CreateDataset("Dataset_Line", scdLine, scoDefault)
SuperWkspManager1.Refresh
Set objDataset = Nothing
Set objDataSource = Nothing
End Sub
Private Sub mnuCreateDataset_point_Click()
Dim objDataset As soDataset
Dim objDataSource As soDataSource
Set objDataSource = SuperWorkspace1.Datasources(1)
'创建点数据集
'Create point dataset
Set objDataset = objDataSource.CreateDataset("Dataset_Point", scdPoint, scoDefault)
SuperWkspManager1.Refresh
Set objDataset = Nothing
Set objDataSource = Nothing
End Sub
Private Sub mnuCreateDataset_Region_Click()
Dim objDataset As soDataset
Dim objDataSource As soDataSource
Set objDataSource = SuperWorkspace1.Datasources(1)
'创建面数据集
'Create region dataset
Set objDataset = objDataSource.CreateDataset("Dataset_Region", scdRegion, scoDefault)
SuperWkspManager1.Refresh
Set objDataset = Nothing
Set objDataSource = Nothing
End Sub
Private Sub mnuCreateDataset_Text_Click()
Dim objDataset As soDataset
Dim objDataSource As soDataSource
Set objDataSource = SuperWorkspace1.Datasources(1)
'创建文本数据集
'Create text dataset
Set objDataset = objDataSource.CreateDataset("Dataset_Text", scdText, scoDefault)
SuperWkspManager1.Refresh
Set objDataset = Nothing
Set objDataSource = Nothing
End Sub
Private Sub mnuCreateDataSource_Click()
Dim objDataSource As soDataSource
Dim strDsName As String
On Error GoTo ErrorHandle
With dlgFileSave
.FileName = "TempDataSource"
.DialogTitle = "创建数据源"
.Filter = "(*.sdb)|*.sdb"
.InitDir = "F:\专业课题\supermap课题\vb之supermap"
.CancelError = True
.ShowSave
If .FileName <> "" Then
strDsName = .FileName
Else
Exit Sub
End If
End With
'创建数据源
'Create datasource
Set objDataSource = SuperWorkspace1.CreateDataSource(strDsName, "TempDataSource", sceSDBPlus, False, False, False, "")
If objDataSource Is Nothing Then
MsgBox objError.LastErrorMsg, vbInformation
Exit Sub
End If
SuperWkspManager1.Refresh
mnuCreateDataSource.Enabled = False
Set objDataSource = Nothing
Exit Sub
ErrorHandle:
'exit sub
End Sub
Private Sub mnuCreateEllipticArc_Click()
'创建弧段
'Create elliptic arc
SuperMap1.Action = scaEditCreateEllipticArc
End Sub
Private Sub mnuCreateLinesect_Click()
'创建直线
'Create linesect
SuperMap1.Action = scaEditCreateLinesect
End Sub
Private Sub mnuCreatePoint_Click()
SuperMap1.Action = scaEditCreatePoint
End Sub
Private Sub mnuCreatePolygan_Click()
'创建多边形
'Create Polygon
SuperMap1.Action = scaEditCreatePolygon
End Sub
Private Sub mnuCreatePolyLine_Click()
'创建折线
SuperMap1.Action = scaEditCreatePolyline
End Sub
Private Sub mnuCreateText_Click()
'创建注记
'Create text
SuperMap1.Action = scaEditCreateText
End Sub
Private Sub SuperLegend1_Modified()
SuperMap1.Refresh
End Sub
Private Sub SuperWkspManager1_LDbClick(ByVal nFlag As SuperWkspManagerLib.seSelectedItemFlag, ByVal strSelected As String, ByVal strParent As String)
Dim objDataSource As soDataSource
Dim objDataset As soDataset
If nFlag = scsDataset Then
Set objDataSource = SuperWorkspace1.Datasources(strParent)
Set objDataset = objDataSource.Datasets(strSelected)
SuperMap1.Layers.AddDataset objDataset, True '添加数据集到地图图层集合中
SuperLegend1.Refresh
SuperMap1.Refresh
End If
Set objDataset = Nothing
Set objDataSource = Nothing
End Sub