10 个解决方案
#1
Public onx, ony
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If X > Picture1.Left And X < Picture1.Left + Picture.Width And Y > Picture1.Top - Picture1.Height And Y < Picture1.Top Then
onx = X
ony = Y
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Line (onx, ony)-(X, Y)
End Sub
类似这样的代码可以实现!
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If X > Picture1.Left And X < Picture1.Left + Picture.Width And Y > Picture1.Top - Picture1.Height And Y < Picture1.Top Then
onx = X
ony = Y
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Line (onx, ony)-(X, Y)
End Sub
类似这样的代码可以实现!
#2
Public onx, ony
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If X > Picture1.Left And X < Picture1.Left + Picture.Width And Y > Picture1.Top - Picture1.Height And Y < Picture1.Top Then
onx = X
ony = Y
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Line (onx, ony)-(X, Y)
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If X > Picture1.Left And X < Picture1.Left + Picture.Width And Y > Picture1.Top - Picture1.Height And Y < Picture1.Top Then
onx = X
ony = Y
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Line (onx, ony)-(X, Y)
End Sub
#3
算法问题
算法你自己想
Dim aaa
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
aaa = 1
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If aaa = 1 Then
Picture1.PSet (X, Y), &H0&
End If
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
aaa = 0
End Sub
算法你自己想
Dim aaa
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
aaa = 1
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If aaa = 1 Then
Picture1.PSet (X, Y), &H0&
End If
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
aaa = 0
End Sub
#4
Up the same
#5
Dim XX, YY
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
XX = X
YY = Y
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Line (X, Y)-(XX, YY)
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
XX = X
YY = Y
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Line (X, Y)-(XX, YY)
End Sub
#6
Dim XX, YY
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
XX = X
YY = Y
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Line (X, Y)-(XX, YY)
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
XX = X
YY = Y
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Line (X, Y)-(XX, YY)
End Sub
#7
Line 方法
在对象上画直线和矩形。
语法
object.Line [Step] (x1, 1) [Step] (x2, y2), [color], [B][F]
Line 方法的语法有以下对象限定符和部分:
部分 描述
object 可选的。 对象表达式,其值为“应用于”列表中的对象。如果object 省略,具有焦点的窗体作为object。
Step 可选的。关键字,指定起点坐标,它们相对于由 CurrentX 和 CurrentY 属性提供的当前图形位置。
(x1, y1) 可选的。Single (单精度浮点数),直线或矩形的起点坐标。ScaleMode 属性决定了使用的度量单位。如果省略,线起始于由 CurrentX 和 CurrentY 指示的位置。
Step 可选的。关键字,指定相对于线的起点的终点坐标。
(x2, y2) 必需的。Single (单精度浮点数),直线或矩形的终点坐标。
color 可选的。Long (长整型数),画线时用的 RGB 颜色。如果它被省略,则使用 ForeColor 属性值。可用 RGB 函数或 QBColor 函数指定颜色。
B 可选的。如果包括,则利用对角坐标画出矩形。
F 可选的。如果使用了 B 选项,则 F 选项规定矩形以矩形边框的颜色填充。不能不用 B 而用 F。如果不用 F 光用 B,则矩形用当前的 FillColor 和 FillStyle 填充。FillStyle 的缺省值为 transparent。
说明
画联结的线时,前一条线的终点就是后一条线的起点。
线的宽度取决于 DrawWidth 属性值。在背景上画线和矩形的方法取决于 DrawMode 和 DrawStyle 属性值。
执行 Line 方法时, CurrentX 和 CurrentY 属性被参数设置为终点。
这个方法不能用于With...End With 语句块。
Line 方法示例
这个示例用 Line 方法在窗体上画了几个同心矩形。要运行这个示例,将此代码放入窗体的 General 部分。按 F5 并单击窗体。
Sub Form_Click ()
Dim CX, CY, F, F1, F2, I ' 声明变量。
ScaleMode = 3 ' 设置 ScaleMode 为像素。
CX = ScaleWidth / 2 ' 水平中点。
CY = ScaleHeight / 2 ' 垂直中点。
DrawWidth = 8 ' 设置 DrawWidth。
For I = 50 To 0 Step -2
F = I / 50 ' 执行中间步骤。
F1 = 1 - F: F2 = 1 + F ' 计算。
Forecolor = QBColor(I Mod 15) ' 设置前景颜色。
Line (CX * F1, CY * F1)-(CX * F2, CY * F2), , BF
Next I
DoEvents ' 做其它处理。
If CY > CX Then ' 设置 DrawWidth。
DrawWidth = ScaleWidth / 25
Else
DrawWidth = ScaleHeight / 25
End If
For I = 0 To 50 Step 2 ' Set up loop.
F = I / 50 ' 执行中间。
F1 = 1 - F: F2 = 1 + F ' 计算。
Line (CX * F1, CY)-(CX, CY * F1) ' 画左上角。
Line -(CX * F2, CY) ' 画右上角。
Line -(CX, CY * F2) ' 画右下角。
Line -(CX * F1, CY) ' 画左下角。
Forecolor = QBColor(I Mod 15) ' 每次改变颜色。
Next I
DoEvents ' 进行其它处理。
End Sub
在对象上画直线和矩形。
语法
object.Line [Step] (x1, 1) [Step] (x2, y2), [color], [B][F]
Line 方法的语法有以下对象限定符和部分:
部分 描述
object 可选的。 对象表达式,其值为“应用于”列表中的对象。如果object 省略,具有焦点的窗体作为object。
Step 可选的。关键字,指定起点坐标,它们相对于由 CurrentX 和 CurrentY 属性提供的当前图形位置。
(x1, y1) 可选的。Single (单精度浮点数),直线或矩形的起点坐标。ScaleMode 属性决定了使用的度量单位。如果省略,线起始于由 CurrentX 和 CurrentY 指示的位置。
Step 可选的。关键字,指定相对于线的起点的终点坐标。
(x2, y2) 必需的。Single (单精度浮点数),直线或矩形的终点坐标。
color 可选的。Long (长整型数),画线时用的 RGB 颜色。如果它被省略,则使用 ForeColor 属性值。可用 RGB 函数或 QBColor 函数指定颜色。
B 可选的。如果包括,则利用对角坐标画出矩形。
F 可选的。如果使用了 B 选项,则 F 选项规定矩形以矩形边框的颜色填充。不能不用 B 而用 F。如果不用 F 光用 B,则矩形用当前的 FillColor 和 FillStyle 填充。FillStyle 的缺省值为 transparent。
说明
画联结的线时,前一条线的终点就是后一条线的起点。
线的宽度取决于 DrawWidth 属性值。在背景上画线和矩形的方法取决于 DrawMode 和 DrawStyle 属性值。
执行 Line 方法时, CurrentX 和 CurrentY 属性被参数设置为终点。
这个方法不能用于With...End With 语句块。
Line 方法示例
这个示例用 Line 方法在窗体上画了几个同心矩形。要运行这个示例,将此代码放入窗体的 General 部分。按 F5 并单击窗体。
Sub Form_Click ()
Dim CX, CY, F, F1, F2, I ' 声明变量。
ScaleMode = 3 ' 设置 ScaleMode 为像素。
CX = ScaleWidth / 2 ' 水平中点。
CY = ScaleHeight / 2 ' 垂直中点。
DrawWidth = 8 ' 设置 DrawWidth。
For I = 50 To 0 Step -2
F = I / 50 ' 执行中间步骤。
F1 = 1 - F: F2 = 1 + F ' 计算。
Forecolor = QBColor(I Mod 15) ' 设置前景颜色。
Line (CX * F1, CY * F1)-(CX * F2, CY * F2), , BF
Next I
DoEvents ' 做其它处理。
If CY > CX Then ' 设置 DrawWidth。
DrawWidth = ScaleWidth / 25
Else
DrawWidth = ScaleHeight / 25
End If
For I = 0 To 50 Step 2 ' Set up loop.
F = I / 50 ' 执行中间。
F1 = 1 - F: F2 = 1 + F ' 计算。
Line (CX * F1, CY)-(CX, CY * F1) ' 画左上角。
Line -(CX * F2, CY) ' 画右上角。
Line -(CX, CY * F2) ' 画右下角。
Line -(CX * F1, CY) ' 画左下角。
Forecolor = QBColor(I Mod 15) ' 每次改变颜色。
Next I
DoEvents ' 进行其它处理。
End Sub
#8
呵,这其实挺简单的,楼上的全对。
#9
不对啊,用以上的方法只能画从左上角到mouse点击处的连线
#10
谢谢各位,好了,给分
#1
Public onx, ony
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If X > Picture1.Left And X < Picture1.Left + Picture.Width And Y > Picture1.Top - Picture1.Height And Y < Picture1.Top Then
onx = X
ony = Y
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Line (onx, ony)-(X, Y)
End Sub
类似这样的代码可以实现!
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If X > Picture1.Left And X < Picture1.Left + Picture.Width And Y > Picture1.Top - Picture1.Height And Y < Picture1.Top Then
onx = X
ony = Y
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Line (onx, ony)-(X, Y)
End Sub
类似这样的代码可以实现!
#2
Public onx, ony
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If X > Picture1.Left And X < Picture1.Left + Picture.Width And Y > Picture1.Top - Picture1.Height And Y < Picture1.Top Then
onx = X
ony = Y
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Line (onx, ony)-(X, Y)
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If X > Picture1.Left And X < Picture1.Left + Picture.Width And Y > Picture1.Top - Picture1.Height And Y < Picture1.Top Then
onx = X
ony = Y
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Line (onx, ony)-(X, Y)
End Sub
#3
算法问题
算法你自己想
Dim aaa
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
aaa = 1
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If aaa = 1 Then
Picture1.PSet (X, Y), &H0&
End If
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
aaa = 0
End Sub
算法你自己想
Dim aaa
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
aaa = 1
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If aaa = 1 Then
Picture1.PSet (X, Y), &H0&
End If
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
aaa = 0
End Sub
#4
Up the same
#5
Dim XX, YY
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
XX = X
YY = Y
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Line (X, Y)-(XX, YY)
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
XX = X
YY = Y
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Line (X, Y)-(XX, YY)
End Sub
#6
Dim XX, YY
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
XX = X
YY = Y
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Line (X, Y)-(XX, YY)
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
XX = X
YY = Y
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Line (X, Y)-(XX, YY)
End Sub
#7
Line 方法
在对象上画直线和矩形。
语法
object.Line [Step] (x1, 1) [Step] (x2, y2), [color], [B][F]
Line 方法的语法有以下对象限定符和部分:
部分 描述
object 可选的。 对象表达式,其值为“应用于”列表中的对象。如果object 省略,具有焦点的窗体作为object。
Step 可选的。关键字,指定起点坐标,它们相对于由 CurrentX 和 CurrentY 属性提供的当前图形位置。
(x1, y1) 可选的。Single (单精度浮点数),直线或矩形的起点坐标。ScaleMode 属性决定了使用的度量单位。如果省略,线起始于由 CurrentX 和 CurrentY 指示的位置。
Step 可选的。关键字,指定相对于线的起点的终点坐标。
(x2, y2) 必需的。Single (单精度浮点数),直线或矩形的终点坐标。
color 可选的。Long (长整型数),画线时用的 RGB 颜色。如果它被省略,则使用 ForeColor 属性值。可用 RGB 函数或 QBColor 函数指定颜色。
B 可选的。如果包括,则利用对角坐标画出矩形。
F 可选的。如果使用了 B 选项,则 F 选项规定矩形以矩形边框的颜色填充。不能不用 B 而用 F。如果不用 F 光用 B,则矩形用当前的 FillColor 和 FillStyle 填充。FillStyle 的缺省值为 transparent。
说明
画联结的线时,前一条线的终点就是后一条线的起点。
线的宽度取决于 DrawWidth 属性值。在背景上画线和矩形的方法取决于 DrawMode 和 DrawStyle 属性值。
执行 Line 方法时, CurrentX 和 CurrentY 属性被参数设置为终点。
这个方法不能用于With...End With 语句块。
Line 方法示例
这个示例用 Line 方法在窗体上画了几个同心矩形。要运行这个示例,将此代码放入窗体的 General 部分。按 F5 并单击窗体。
Sub Form_Click ()
Dim CX, CY, F, F1, F2, I ' 声明变量。
ScaleMode = 3 ' 设置 ScaleMode 为像素。
CX = ScaleWidth / 2 ' 水平中点。
CY = ScaleHeight / 2 ' 垂直中点。
DrawWidth = 8 ' 设置 DrawWidth。
For I = 50 To 0 Step -2
F = I / 50 ' 执行中间步骤。
F1 = 1 - F: F2 = 1 + F ' 计算。
Forecolor = QBColor(I Mod 15) ' 设置前景颜色。
Line (CX * F1, CY * F1)-(CX * F2, CY * F2), , BF
Next I
DoEvents ' 做其它处理。
If CY > CX Then ' 设置 DrawWidth。
DrawWidth = ScaleWidth / 25
Else
DrawWidth = ScaleHeight / 25
End If
For I = 0 To 50 Step 2 ' Set up loop.
F = I / 50 ' 执行中间。
F1 = 1 - F: F2 = 1 + F ' 计算。
Line (CX * F1, CY)-(CX, CY * F1) ' 画左上角。
Line -(CX * F2, CY) ' 画右上角。
Line -(CX, CY * F2) ' 画右下角。
Line -(CX * F1, CY) ' 画左下角。
Forecolor = QBColor(I Mod 15) ' 每次改变颜色。
Next I
DoEvents ' 进行其它处理。
End Sub
在对象上画直线和矩形。
语法
object.Line [Step] (x1, 1) [Step] (x2, y2), [color], [B][F]
Line 方法的语法有以下对象限定符和部分:
部分 描述
object 可选的。 对象表达式,其值为“应用于”列表中的对象。如果object 省略,具有焦点的窗体作为object。
Step 可选的。关键字,指定起点坐标,它们相对于由 CurrentX 和 CurrentY 属性提供的当前图形位置。
(x1, y1) 可选的。Single (单精度浮点数),直线或矩形的起点坐标。ScaleMode 属性决定了使用的度量单位。如果省略,线起始于由 CurrentX 和 CurrentY 指示的位置。
Step 可选的。关键字,指定相对于线的起点的终点坐标。
(x2, y2) 必需的。Single (单精度浮点数),直线或矩形的终点坐标。
color 可选的。Long (长整型数),画线时用的 RGB 颜色。如果它被省略,则使用 ForeColor 属性值。可用 RGB 函数或 QBColor 函数指定颜色。
B 可选的。如果包括,则利用对角坐标画出矩形。
F 可选的。如果使用了 B 选项,则 F 选项规定矩形以矩形边框的颜色填充。不能不用 B 而用 F。如果不用 F 光用 B,则矩形用当前的 FillColor 和 FillStyle 填充。FillStyle 的缺省值为 transparent。
说明
画联结的线时,前一条线的终点就是后一条线的起点。
线的宽度取决于 DrawWidth 属性值。在背景上画线和矩形的方法取决于 DrawMode 和 DrawStyle 属性值。
执行 Line 方法时, CurrentX 和 CurrentY 属性被参数设置为终点。
这个方法不能用于With...End With 语句块。
Line 方法示例
这个示例用 Line 方法在窗体上画了几个同心矩形。要运行这个示例,将此代码放入窗体的 General 部分。按 F5 并单击窗体。
Sub Form_Click ()
Dim CX, CY, F, F1, F2, I ' 声明变量。
ScaleMode = 3 ' 设置 ScaleMode 为像素。
CX = ScaleWidth / 2 ' 水平中点。
CY = ScaleHeight / 2 ' 垂直中点。
DrawWidth = 8 ' 设置 DrawWidth。
For I = 50 To 0 Step -2
F = I / 50 ' 执行中间步骤。
F1 = 1 - F: F2 = 1 + F ' 计算。
Forecolor = QBColor(I Mod 15) ' 设置前景颜色。
Line (CX * F1, CY * F1)-(CX * F2, CY * F2), , BF
Next I
DoEvents ' 做其它处理。
If CY > CX Then ' 设置 DrawWidth。
DrawWidth = ScaleWidth / 25
Else
DrawWidth = ScaleHeight / 25
End If
For I = 0 To 50 Step 2 ' Set up loop.
F = I / 50 ' 执行中间。
F1 = 1 - F: F2 = 1 + F ' 计算。
Line (CX * F1, CY)-(CX, CY * F1) ' 画左上角。
Line -(CX * F2, CY) ' 画右上角。
Line -(CX, CY * F2) ' 画右下角。
Line -(CX * F1, CY) ' 画左下角。
Forecolor = QBColor(I Mod 15) ' 每次改变颜色。
Next I
DoEvents ' 进行其它处理。
End Sub
#8
呵,这其实挺简单的,楼上的全对。
#9
不对啊,用以上的方法只能画从左上角到mouse点击处的连线
#10
谢谢各位,好了,给分