如何用VB编写画直线的程序,直线可以移动,而且在鼠标移动的时候有直线跟着。就像aotocad里面的一样。谢谢大家给些代码吧

解决方案 »

  1.   

    Option ExplicitPrivate Sub Form_Load()
        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
      

  2.   

    MousePointer设置成2Dim lineX As Single
    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
      

  3.   

    这是一个有橡皮筋效果的画线的程序
    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
      

  4.   

    要的,谢谢!发到我得邮箱里面吧![email protected]
      

  5.   

    Dim p As Single
    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