VB.NET:ダブルバッファリングでちらつき防止!

posted on 2005年8月31日 16:18 投稿者 Elfaria

Windows Forms アプリケーションで、いろいろ画面の描画処理(特に画像を動かしたり、頻繁に書き換えたり)すると、速度が遅くなったり、ちらつきが発生したりします。

その解決方法。ダブルバッファリングを使用します。

フォームのロード時イベントに、以下の文を追加します。

Me.SetStyle(ControlStyles.DoubleBuffer, True)
Me.SetStyle(ControlStyles.UserPaint, True)
Me.SetStyle(ControlStyles.AllPaintingInWmPaint, True)

ちなみに、VS2003で私がやってみたところ、Me.SetStyleがインテリセンスで出現しませんでした。
しかし、コンパイルできるので大丈夫かと思います。

ダブルバッファリングの仕組みとしては、まず、メモリ上にすべての描画して、それを画面に転送する、ってな感じです。画面のちらつきが少なくなります。
画面のちらつきを押さえるために、昔のゲームでもよく使われていた技術ですね。
あのころは、少ないVRAMや、場合によっては他の用途に使われるメモリ領域(たとえば漢字RAM領域とか?)なども駆使して、がんばってましたねぇ。

今では、(.NETでプログラミングする場合は)たった3行で実現できてしまいます。
いやはや、技術の進歩はすごいですね。

Manual.Article.TrackBack :: @IT --  .NET TIPS ダブル・バッファリングにより描画を行うには?

コメント