自己写方法完成吧,分别实现画线和画点等 举例,画线 Sub PLine(x1 As Long, y1 As Long, x2 As Long, y2 As Long, r As Long, g As Long, b As Long) Picture1.Line (x1, y1)-(x2, y2), RGB(r, g, b) End SubPrivate Sub Command1_Click() Dim s As String, i As Long, ss() As String, ss2() As String s = Text1.Text ss = Split(s, ",") ss2 = Split(ss(0), " ") If ss2(0) = "Picture1.Line" Then PLine Val(ss2(1)), Val(ss(1)), Val(ss(2)), Val(ss(3)), Val(ss(4)), Val(ss(5)), Val(ss(6)) End If End SubPrivate Sub Form_Load() Picture1.Scale (-10, 25)-(10, -25) '定义坐标系 Text1.Text = "Picture1.Line -10,0,10,0,0,0,255" End Sub
可以考虑使用BitBlt来实现。参考:Option Explicit Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, _ ByVal x As Long, _ ByVal y As Long, _ ByVal nWidth As Long, _ ByVal nHeight As Long, _ ByVal hSrcDC As Long, _ ByVal xSrc As Long, _ ByVal ySrc As Long, _ ByVal dwRop As Long) As Long
Private Sub btnSaveGS_Click() Dim lngP As Long picGS.Cls lngP = BitBlt(picGS.hDC, 0, 0, picGS.ScaleWidth, picGS.ScaleHeight, Me.hDC, txtGS.Left, txtGS.Top, vbSrcCopy) picGS.Refresh SavePicture picGS.Image, "C:\GS.bmp" End SubPrivate Sub Form_Load() With Me .ScaleMode = 3 End With btnSaveGS.Caption = "保存公式" With txtGS .Text = "y=A*Sin(x)" .FontSize = 16 .BorderStyle = 1 .Appearance = 0 End With With picGS .Appearance = 0 .BorderStyle = 1 .AutoRedraw = True .Width = txtGS.Width .Height = txtGS.Height .ScaleMode = 3 End With
举例,画线
Sub PLine(x1 As Long, y1 As Long, x2 As Long, y2 As Long, r As Long, g As Long, b As Long)
Picture1.Line (x1, y1)-(x2, y2), RGB(r, g, b)
End SubPrivate Sub Command1_Click()
Dim s As String, i As Long, ss() As String, ss2() As String
s = Text1.Text
ss = Split(s, ",")
ss2 = Split(ss(0), " ")
If ss2(0) = "Picture1.Line" Then
PLine Val(ss2(1)), Val(ss(1)), Val(ss(2)), Val(ss(3)), Val(ss(4)), Val(ss(5)), Val(ss(6))
End If
End SubPrivate Sub Form_Load()
Picture1.Scale (-10, 25)-(10, -25) '定义坐标系
Text1.Text = "Picture1.Line -10,0,10,0,0,0,255"
End Sub
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, _
ByVal x As Long, _
ByVal y As Long, _
ByVal nWidth As Long, _
ByVal nHeight As Long, _
ByVal hSrcDC As Long, _
ByVal xSrc As Long, _
ByVal ySrc As Long, _
ByVal dwRop As Long) As Long
Private Sub btnSaveGS_Click()
Dim lngP As Long
picGS.Cls
lngP = BitBlt(picGS.hDC, 0, 0, picGS.ScaleWidth, picGS.ScaleHeight, Me.hDC, txtGS.Left, txtGS.Top, vbSrcCopy)
picGS.Refresh
SavePicture picGS.Image, "C:\GS.bmp"
End SubPrivate Sub Form_Load()
With Me
.ScaleMode = 3
End With
btnSaveGS.Caption = "保存公式"
With txtGS
.Text = "y=A*Sin(x)"
.FontSize = 16
.BorderStyle = 1
.Appearance = 0
End With
With picGS
.Appearance = 0
.BorderStyle = 1
.AutoRedraw = True
.Width = txtGS.Width
.Height = txtGS.Height
.ScaleMode = 3
End With
End Sub