drawimage会触发什么事件?

timezone 2011-03-01 12:38:59
我想知道
g2 = Graphics.FromImage(bgimage)
g2.DrawImage(My.Resources.tr, 0, 0)
PictureBox1.Image = bgimage
当这个g2调用drawimage时会触发一个什么事件?因为我发现用timer来实现PictureBox1.Image = bgimage
还是无法获取多个线程在这个图片上实时的操作结果,如果不用timer也不可能我每一次操作drawimage就让它给pictureobx.image赋值一下,因为用drawimage的地方太多了。如果能知道drawimage会触发什么事件应当就好办了。请教高手指点!具体我为什么要这么做请看我这个贴子:
http://topic.csdn.net/u/20110217/19/e36e6525-a089-48a0-9ede-88752cb9d07f.html
...全文
136 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
timezone 2011-03-01
  • 打赏
  • 举报
回复
恳请高手出来指点一下啊
xingyuebuyu 2011-03-01
  • 打赏
  • 举报
回复
drawimage不会触发事件的,界面上的图片方字是收到WM_PAINT消息后才重绘的,你目前是绘制完后才显示到界面上,需求不一样,绘制完后必须去刷新才行。
如果想实时显示,在每进行一次DRAW动作后都需要刷新的


Imports System.Threading
Imports System.ComponentModel

Public Class Form1

Dim g2 As Graphics
Dim xp1 As Bitmap = New Bitmap("d:\1.bmp")
Dim xp2 As Bitmap = New Bitmap("d:\112.bmp")
Dim bgimage As Bitmap

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

bgimage = New Bitmap(PictureBox1.Width, PictureBox1.Height) '创建相同大小的内存位图
g2 = Graphics.FromImage(bgimage)
PictureBox1.Image = bgimage
'g2.DrawImage(My.Resources.tr, 0, 0)
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim t1 As New Thread(AddressOf thread1)
Dim isy As ISynchronizeInvoke = Me
t1.Start(isy)
End Sub

Private Sub thread1(ByVal obj As Object)
Dim isy As ISynchronizeInvoke = obj
isy.BeginInvoke(New MethodInvoker(AddressOf work), Nothing)
End Sub

Public bolSwitch As Boolean = False
Public Sub work()
For a As Integer = 1 To 10000000
bolSwitch = Not bolSwitch
If bolSwitch = True Then
g2.DrawImage(xp1, 20, 20)
Else
g2.DrawImage(xp2, 20, 20)
End If

g2.DrawString(Guid.NewGuid.ToString, SystemFonts.CaptionFont, Brushes.Blue, 40, 40)

PictureBox1.Invalidate()
'PictureBox1.Image = bgimage
Thread.Sleep(1)
Application.DoEvents()
Next
End Sub

End Class




dylike 2011-03-01
  • 打赏
  • 举报
回复
你可以重写该方法并加入事件触发
timezone 2011-03-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dylike 的回复:]
CPU占用率上涨事件
[/Quote]
呵呵,楼上的高手正解。
除了这个还有没有其它的啊?我想利用drawimage触发的消息来取代在timer中更新image不及时的问题
dylike 2011-03-01
  • 打赏
  • 举报
回复
CPU占用率上涨事件

16,553

社区成员

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

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