タイトル | : ダブルバッファリング |
記事No | : 6412 |
投稿日 | : 2007/10/08(Mon) 00:29 |
投稿者 | : たーくん |
初心者たーくんです いつもお世話になります
ダブルバッファリングの試験的なプログラムを作っていますが うまくいきません。 過去レス等見て下記まで自分で作りましたが行き詰まりました。 よろしくお願いします
(目的)フォームにピクチャーボックス1(300×300)が有ります。 「10ヶづつ緑の四角をバッファに描画した後、画像に転送させる」 等速で行いたい。出来れば自作のサブプロシージャから好きなタイミングで呼び出したい。
(現状) OnPaintメソッドが自分の好きなタイミングで呼べない。呼び方がわからない。 Onpaintメソッドは勝手に呼ばれているうえに不均等な呼び出し速度。
m(--)m 2005EE です
'-------------------------------------------------------------------- Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.SetStyle(ControlStyles.DoubleBuffer, True) Me.SetStyle(ControlStyles.UserPaint, True) Me.SetStyle(ControlStyles.AllPaintingInWmPaint, True)
End Sub
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs) MyBase.OnPaint(e)
Dim g As Graphics = PictureBox1.CreateGraphics Dim brush As SolidBrush = New SolidBrush(Color.Green) Dim x As Integer, y As Integer Dim ran As Random = New System.Random For i As Integer = 0 To 10 x = ran.Next(300) y = ran.Next(300)
Dim rec As Rectangle = New Rectangle(x, y, 10, 10)
g.FillRectangle(brush, rec) Next
End Sub End Class
|