ユーザー コントロールのペイント ハンドラーで、定義済みの Bitmap オブジェクトのコレクションを繰り返し処理し、クライアント領域に描画します。
C# バージョン:
private void Control_Paint(object sender, PaintEventArgs e) {
Graphics g = e.Graphics;
foreach (BitmapObj bmpObj in _bitmapObjCollection) {
g.DrawImageUnscaled(bmpObj.Bitmap, bmpObj.Location);
}
}
VB.NET バージョン:
Private Sub Control_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) Handles MyBase.Paint
Dim g As Graphics = e.Graphics
For Each bmpObj As BitmapObj In _bitmapObjCollection
g.DrawImageUnscaled(bmpObj.Bitmap, bmpObj.Location)
Next
End Sub
コードは問題なく動作しますが、12 個ほどのオブジェクトがコレクションに追加されると、動きが鈍くなり始めます。私の質問は: これをスピードアップする方法はありますか? Win32 の bitblt 関数を使用して DrawImageUnscaled を置き換えることはできますか? もしそうなら、どのように?
ありがとう!
注: BitBlt の使用に関するグーグル検索では、これまでのところ画面キャプチャのサンプルしか得られませんでした...