如何用VB编写画直线的程序,直线可以移动,而且在鼠标移动的时候有直线跟着。就像aotocad里面的一样。谢谢大家给些代码吧
解决方案 »
- 串口数据接收的问题
- 请问有什么算法将 非标准浮点数转换成 标准IEEE格式的浮点数(单精度)?
- 如何使用VB判断SQL是否有我需要的库?
- 打印出界
- ActiveReport2.0中设计器字体问题(高手请进)
- floodfill上色问题,纠结了几天!!!!!!!!!!!
- 如果将datagrid控件的记录中的某一条记录改变颜色???
- 如何判断目录是否存在
- 整样才能让Webbrowser控件里的网页也能响应click或mousedown mouseup事件
- 用户控件.........................................
- 依次操作表中所有记录的语句怎么写啊?
- 如何控制与ole联系的滚动条?
Me.AutoRedraw = True
End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.Cls
Line (X - 300, Y)-(X + 300, Y)
End Sub
Dim lineY As SinglePrivate Sub Form_Load()
Me.AutoRedraw = True
End SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
lineX = X
lineY = Y
End SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Line (lineX, lineY)-(X, Y)
End Sub
Option ExplicitDim startx, starty, endx, endy As Integer
'有橡皮筋效果的程序
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button <> 1 Then Exit Sub
Form1.AutoRedraw = False
startx = X '记住起始点
starty = Y
End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button <> 1 Then Exit Sub
Form1.Refresh
Form1.Line (startx, starty)-(X, Y) '显示橡皮筋效果
End SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button <> 1 Then Exit Sub
endx = X '记住终止点
endy = Y
Form1.AutoRedraw = True
Form1.Line (startx, starty)-(endx, endy) '最终画线
End Sub
Dim u As Integer
Dim k As Integer
Private Sub Command1_Click()
Timer1.Enabled = False
Timer2.Enabled = False
Timer3.Enabled = False
Label1.Visible = False
Picture1.Cls
Picture1.ScaleMode = 1
Picture1.ForeColor = vbBlack
Picture1.Line (0, 1120)-(3395, 1120)
Picture1.Line (1697.5, 0)-(1697.5, 2296)
u = 0
p = -100
k = 0
For i = 50 To 1050 Step 50
Picture1.Circle (1697, 1120), i
Picture1.ForeColor = i * 12000
Next iEnd SubPrivate Sub Command2_Click()
Timer1.Enabled = True
Timer2.Enabled = False
Timer3.Enabled = False
Label1.Visible = False
k = 0
p = -100
End SubPrivate Sub Command3_Click()
Timer1.Enabled = False
Picture1.Cls
Picture1.ScaleMode = 1
Picture1.ForeColor = vbBlack
Picture1.Line (0, 1120)-(3395, 1120)
Picture1.Line (1697, 0)-(1697, 2296)
'Timer2.Enabled = True
u = 0
p = -100
If k = 0 Then
Label1.Caption = "正弦曲线"
Label1.Visible = True
Timer2.Enabled = True
Timer3.Enabled = False
k = 1
Exit Sub
End If
If k = 1 Then
Label1.Caption = "余弦曲线"
Label1.Visible = True
Timer2.Enabled = False
Timer3.Enabled = True
k = 0
Exit Sub
End If
End Sub
Private Sub Form_Load()
Timer1.Enabled = False
Timer2.Enabled = False
Timer3.Enabled = False
Picture1.ForeColor = vbBlack
Picture1.Line (0, 1120)-(3395, 1120)
Picture1.Line (1697, 0)-(1697, 2296)
u = 0
p = -100
k = 0
Label1.Visible = False
End SubPrivate Sub Timer1_Timer()
Picture1.Cls
Picture1.ScaleMode = 1
Picture1.ForeColor = vbBlack
Picture1.Line (0, 1120)-(3395, 1120)
Picture1.Line (1697, 0)-(1697, 2296)
For w = 50 To 1050 Step 50
Picture1.Circle (u * 20, 1120), w
Picture1.ForeColor = (w + u) * 12000
Next w
u = u + 1
If u * 20 > 3395 Then u = 0End SubPrivate Sub Timer2_Timer()
Picture1.Cls
Picture1.ScaleMode = 1
Picture1.ForeColor = vbBlack
Picture1.Line (0, 1120)-(3395, 1120)
Picture1.Line (1697, 0)-(1697, 2296)
'For q = 0 To 3395 Step 50
' Picture1.PSet (q, (1120 + Sin(p) * 700))
'Next q
'Picture1.ScaleLeft = -1697
'Picture1.ScaleHeight = -2296
'Picture1.Width = 3395'For q = 1 To p + 1
' p = -1697 + (q - 1) * 50
' Picture1.Circle (p, (1120 + Sin(p))), 10
'Next q
'p = p + 1
'If p > 3395 - 1697 Then p = -1697
Picture1.ForeColor = vbRed
Picture1.ScaleLeft = -100
Picture1.ScaleTop = 100
Picture1.ScaleWidth = 200
Picture1.ScaleHeight = -200For i = -100 To p Step 1
Picture1.PSet (i, 40 * Sin(31.4 / 180 * i))
Next i
p = p + 1
If p > 100 Then p = -100
End SubPrivate Sub Timer3_Timer()
Picture1.Cls
Picture1.ScaleMode = 1
Picture1.ForeColor = vbBlack
Picture1.Line (0, 1120)-(3395, 1120)
Picture1.Line (1697, 0)-(1697, 2296)
Picture1.ForeColor = vbRed
Picture1.ScaleLeft = -100
Picture1.ScaleTop = 100
Picture1.ScaleWidth = 200
Picture1.ScaleHeight = -200
For i = -100 To p Step 1
Picture1.PSet (i, 40 * Cos(31.4 / 180 * i))
Next i
p = p + 1
If p > 100 Then p = -100
End Sub