一个PictureBox1的问题,有代码

xiongying18 2007-12-14 01:12:27
'如何在下面的程序中当bool变量为True时候,单击图片时候在图片上画一个红色小点呀

Public Class Form1
Dim bmp As Bitmap
Dim bmpg As Graphics
Dim IsDown As Boolean
Dim xStartPos As Integer
Dim yStartPos As Integer
Dim xEndPos As Integer
Dim yEndPos As Integer
Dim xtran As Integer
Dim ytran As Integer
Dim old_xtran As Integer
Dim old_ytran As Integer
Dim bool As Boolean

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
bmp = New Bitmap(Image.FromFile(("D:\111.jpg ")))
bmpg = Graphics.FromImage(bmp)
End Sub

Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
e.Graphics.DrawImage(bmp, xtran, ytran)
End Sub

Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
IsDown = True
xStartPos = MousePosition.X
yStartPos = MousePosition.Y
Me.PictureBox1.Cursor = Cursors.Hand
End Sub

Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
If IsDown Then
xEndPos = MousePosition.X
yEndPos = MousePosition.Y

xtran = xEndPos - xStartPos + old_xtran
ytran = yEndPos - yStartPos + old_ytran

bmpg.TranslateTransform(xtran, ytran)

Me.PictureBox1.Invalidate()
End If
End Sub

Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp
old_xtran = xtran
old_ytran = ytran
IsDown = False
Me.PictureBox1.Cursor = Cursors.Default
End Sub

End Class
...全文
88 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
北京的雾霾天 2007-12-14
  • 打赏
  • 举报
回复
如果你一定要使用MousePosition来获取坐标,那么也一定要转换成PictureBox1的相对坐标才可以,比如:

dim pt as Point = PictureBox1.PointToClient(MousePosition);
xStartPos = pt.X
yStartPos = pt.Y
北京的雾霾天 2007-12-14
  • 打赏
  • 举报
回复
位置不对?

你使用的是
xStartPos = MousePosition.X
yStartPos = MousePosition.Y

为什么不使用e.X, e.Y这个坐标值呢?
xiongying18 2007-12-14
  • 打赏
  • 举报
回复
位置老是不对呀
北京的雾霾天 2007-12-14
  • 打赏
  • 举报
回复
bmpg.TranslateTransform(xtran, ytran)
---------------
和画点有什么关系呢?

你要画点可以画一个半径很小的圆。

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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