再修改一下,自己把自己绕住了....
创新互联专注于霍城企业网站建设,成都响应式网站建设公司,成都商城网站开发。霍城网站建设公司,为霍城等地区提供建站服务。全流程按需搭建网站,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
Option Explicit
'问题:比如鼠标任意点两点就出来一个箭头
Private Type Point
X As Single
Y As Single
End Type
Private Sub GetArrow(P1 As Point, P2 As Point, Optional pLen As Single = 200)
'pLen箭头长度
Dim ang As Single
Dim aPt1 As Point, aPt2 As Point
ang = Sqr((P2.Y - P1.Y) * (P2.Y - P1.Y) + (P2.X - P1.X) * (P2.X - P1.X))
If ang 0 Then
aPt1.X = P2.X + pLen * ((P1.X - P2.X) + (P1.Y - P2.Y) / 2) / ang
aPt1.Y = P2.Y + pLen * ((P1.Y - P2.Y) - (P1.X - P2.X) / 2) / ang
aPt2.X = P2.X + pLen * ((P1.X - P2.X) - (P1.Y - P2.Y) / 2) / ang
aPt2.Y = P2.Y + pLen * ((P1.Y - P2.Y) + (P1.X - P2.X) / 2) / ang
End If
Me.Cls
Me.Line (aPt1.X, aPt1.Y)-(P2.X, P2.Y)
Me.Line (aPt2.X, aPt2.Y)-(P2.X, P2.Y)
Me.Line (P1.X, P1.Y)-(P2.X, P2.Y)
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static b As Boolean
Static Pt1 As Point
Static Pt2 As Point
b = Not b
If b Then
Pt1.X = X
Pt1.Y = Y
Else
Pt2.X = X
Pt2.Y = Y
GetArrow Pt1, Pt2
End If
End Sub
建一个Text1,Picture1,Picture2,Picture3,Picture4。
代码如下。
============
Private Sub Form_Resize()
Picture1.Print "←"
Picture2.Print "→"
Picture3.Print "↑"
Picture4.Print "↓"
End Sub
Private Sub Picture1_Click()
Text1.Text = "单击向左箭头"
End Sub
Private Sub Picture2_Click()
Text1.Text = "单击向右箭头"
End Sub
Private Sub Picture3_Click()
Text1.Text = "单击向上箭头"
End Sub
Private Sub Picture4_Click()
Text1.Text = "单击向下箭头"
End Sub
既然会画直线了,那就应该会画箭头了(两条短直线相交就能成箭头 )
标序号其实就是算出位置写字
箭头必须自己画(就是一根直线再加两根短的直线作为箭头)
虚线可以设置PictrueBox的DrawStyle属性为2-Dot,这个属性还有其他的一些常见线型,你可以逐一测试
线宽可以通过设置DrawWidth属性来改变
修改坐标要用PictureBox的Scale方法
Scale
方法
用以定义
Form、PictureBox
或
Printer
的坐标系统。不支持命名参数。
语法
object.Scale
(x1,
y1)
-
(x2,
y2)
Scale
方法的语法包含下列部分:
部分
描述
object
可选的。一个对象表达式,其值为“应用于”列表中的一个对象。如果省略
object,则带有焦点的
Form
对象缺省为
object。
x1,
y1
可选的。均为单精度值,指示定义
object
左上角的水平(x-轴)和垂直(y-轴)坐标。这些值必须用括号括起。如果省略,则第二组坐标也必须省略。
x2,
y2
可选的。均为单精度值,指示定义
object
右下角的水平和垂直坐标。这些值必须用括号括起。如果省略,则第一组坐标也必须省略。
说明
Scale
方法使您能够将坐标系统重置到所选择的任意刻度。Scale
对运行时的图形语句以及控件位置的坐标系统都有影响。
如果使用不带参数的
Scale(两组坐标都省略),坐标系统将重置为缇。
比如你要设置左上角(0,0)右下角(100,100)
Picture1.Scale
(0,0)-(100,100)
这样就可以了