VB2008での AutoRedraw


まずは,海外サイトでの一発記述を見つけました.たった1行です.

Me.DoubleBuffered = True

Me というのは,私も良く分かっているわけではありませんが,『現在アクティブなインスタンスを参照するオブジェクト』を指すそうです.間違っているかも.
この指定を書いておくと,例えばこんなコード(宣言などは一部省略)で;

Dim MyPicture As Graphics = PictureBox1.CreateGraphics()
Me.DoubleBuffered = True

For I = 0 To PictureHeight
For II = 0 To PictureWidth
MyPicture.DrawEllipse(Pen, I, II, 1, 1)
Next
Next

(ありゃ...このブログ,半角スペースの行頭が無視されてしまうんですね.HTMLの仕様?)

描画ボックスの中に点が延々と描かれていきます.描画中に他のウィンドウを重ねても,内容が失われることはありません.これはもしかして解決か?
しかし...ウィンドウを最小化すると内容は消え,デスクトップのリフレッシュがかかると描画済みの内容が(一部)消えてしまいます.

これではダメですね...(続く)

2015/02/25 11:50:54


カテゴリー目次へ戻る
トップページへ戻る