如何在vb6中绘制画框

如何在vb6中绘制画框,vb6,drawing,picturebox,Vb6,Drawing,Picturebox,我已经为此使用了大量的网站,但没有一个有效的,所以我希望我能得到一个正确的答案 我试过这个,有人能告诉我它有什么问题吗 Private sub Picture1_mouseDown x = picture1.currentx y = picture1.currenty End sub Private sub Picture1_MouseMove If button = 1 then line (picture1.currentx,pict

我已经为此使用了大量的网站,但没有一个有效的,所以我希望我能得到一个正确的答案

我试过这个,有人能告诉我它有什么问题吗

    Private sub Picture1_mouseDown
    x = picture1.currentx
    y = picture1.currenty
    End sub

    Private sub Picture1_MouseMove
    If button = 1 then
    line (picture1.currentx,picture1.currenty)-(x,y), _
    QBColor(0)
    End if 
    End sub

我已经切断了私有子图片1\u MouseMove,Mousedown()位,因为我急于完成

您使用
line
方法在
PictureBox
控件上划线:

子行(标记为整数,X1为单,Y1为单,X2为单,Y2为单,颜色为长)

关于这件事没什么好说的,而且已经有很多报道了

不过,您似乎在编写事件处理程序方面有困难。如果您不知道/不记得签名,IDE总是在那里提供帮助。查看教程

下面是帮助您开始绘图的代码<代码>图片1是
PictureBox
控件。按住鼠标左键将鼠标移到图片框上时,将绘制蓝线

Option Explicit

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then
        Picture1.DrawWidth = 5
        Picture1.Line (X, Y)-(X, Y), vbBlue
    End If
End Sub

这一个将画一条线,与kurniliya的画点的解决方案略有不同

Option Explicit

Private lastX As Single
Private lastY As Single

Private Sub Form_Load()
    ' no need to set this every time we move the mouse inside Picture1
    Picture1.DrawWidth = 5
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then
        Picture1.Line (lastX, lastY)-(X, Y), vbBlue
    End If
    lastX = X
    lastY = Y
End Sub

@Swynco.Inc,
Option Explicit
可能是您将来在VB6中进行编码时,从这个答案中获得的最重要的东西—在一定程度上。它不画线,而是画点,与
Picture1.PSet(X,Y)
非常类似,增加了对点颜色的控制@Swynco.Inc正朝着画线的方向前进——或者至少是连接点,正如你从
MouseMove
处理程序中看到的那样。在快速移动鼠标的同时尝试此代码,您将看到它正在绘制点,而不是线。
Option Explicit

Private lastX As Single
Private lastY As Single

Private Sub Form_Load()
    ' no need to set this every time we move the mouse inside Picture1
    Picture1.DrawWidth = 5
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then
        Picture1.Line (lastX, lastY)-(X, Y), vbBlue
    End If
    lastX = X
    lastY = Y
End Sub