タイトル : ダブルバッファリング 投稿日 : 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 |