高分求教如何在图片上描点、划线?

aiaiai 2003-09-29 08:49:46
现屏幕上显示一图片,如何在其上进行描点和划线等,并进一步将此图片进行放大、缩小以及在屏幕上(包括屏幕外)移动???
...全文
548 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
射天狼 2003-09-29
  • 打赏
  • 举报
回复
我给你的这三个例子都是独立的,你要想放到一起,需要改变量名字.
yijiansong 2003-09-29
  • 打赏
  • 举报
回复
高手
射天狼 2003-09-29
  • 打赏
  • 举报
回复
Option Explicit

Dim lngDownX As Long, lngDownY As Long
Dim lngNum As Long

'放大
Private Sub Command1_Click()
On Error Resume Next
lngNum = lngNum + 1
Picture1.Picture = Picture1.Image
Picture1.PaintPicture Picture1.Picture, 0, 0, Picture1.Width * lngNum, Picture1.Height * lngNum, 0, 0, Picture1.Width, Picture1.Height, vbSrcCopy
End Sub

'缩小
Private Sub Command2_Click()
On Error Resume Next
lngNum = lngNum - 1
Picture1.Cls
Picture1.Picture = Picture1.Image
Picture1.PaintPicture Picture1.Picture, 0, 0, Picture1.Width * lngNum, Picture1.Height * lngNum, 0, 0, Picture1.Image.Width, Picture1.Image.Height, vbSrcCopy
End Sub

Private Sub Form_Load()
lngNum = 1
Picture1.AutoRedraw = True
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
lngDownX = X: lngDownY = Y
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static lngOldX As Long, lngOldY As Long
If Button = vbLeftButton Then

Picture1.Line (lngDownX, lngDownY)-(X, Y)
Picture1.DrawMode = vbNotXorPen
Picture1.Line (lngDownX, lngDownY)-(lngOldX, lngOldY)

End If
lngOldX = X: lngOldY = Y
End Sub

aha99 2003-09-29
  • 打赏
  • 举报
回复
hehe...果然是高手的回答。。
射天狼 2003-09-29
  • 打赏
  • 举报
回复
2.移动图片

Option Explicit

Dim lngDownX As Long, lngDownY As Long

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
lngDownX = X: lngDownY = Y
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton Then
With Picture1
.Move .Left + X - lngDownX, .Top + Y - lngDownY
End With
End If
End Sub
射天狼 2003-09-29
  • 打赏
  • 举报
回复
1.画线与描点

Option Explicit

Dim lngDownX As Long, lngDownY As Long

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
lngDownX = X: lngDownY = Y
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static lngOldX As Long, lngOldY As Long
If Button = vbLeftButton Then

Picture1.Line (lngDownX, lngDownY)-(X, Y)
Picture1.DrawMode = vbNotXorPen
Picture1.Line (lngDownX, lngDownY)-(lngOldX, lngOldY)

End If
lngOldX = X: lngOldY = Y
End Sub
Jackile 2003-09-29
  • 打赏
  • 举报
回复
BitBit

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧