DOBON.NETプログラミング掲示板過去ログ
Panel 上の PictureBox のスクロール スピード
題名: Panel 上の PictureBox のスクロール スピード
著者: kait
日時: 2004/11/05 19:00:43
ID: 7190
この記事の返信元:
(なし)
この記事への返信:
(なし)
ツリーを表示
環境/言語:[WinXP, Pentium 4, C#, .NET1.1]
分類:[.NET]
2004/11/05(Fri) 19:02:44 編集(投稿者)
お世話になります。
Visual C++ 6 (MFC) にて、SDI で CScrollView を継承したビューに
画像を表示するアプリケーションを作ったことがあります。
それを .NET + C# に移植してみようと思っているのですが、
.NET での実装方法として Panel (AutoScroll を true) の上に
PictureBox を乗せてみました。表示方法は次の 2 つ試しました。
方法 (1) Image プロパティに Bitmap を設定
this.pictureBox1.Image = new Bitmap(filename);
方法 (2) PictureBox の Paint イベントにて、PictureBox の Graphics に DrawImage
// コンストラクタで private Image image = Bitmap(filename) で読み込んであります
e.Graphics.DrawImage(this.image, 0, 0, this.image.Width, this.image.Height);
this.pictureBox1.Size = this.image.Size;
両方の場合とも、見た目は Visual C++ 6 で作成したものと同じ
なのですが、スクロールバーをスクロールさせたときのスピードが
遅いのです。
Visual C++ のものより (タスクマネージャの CPU 使用率を見る限りで)
10 倍かそれ以上くらい遅いです。
画像の読み込みはコンストラクタでおこなっており、これ以上
高速化できないようなのですが、もっと高速化するには
どうすればよいでしょうか?
Visual C++ 6 では CView::OnDraw にて CDC::BitBlt で
描画しています。
よろしくお願いします m(_ _)m
DOBON.NET
|
プログラミング道
|
プログラミング掲示板
分類:[.NET]
2004/11/05(Fri) 19:02:44 編集(投稿者)
お世話になります。
Visual C++ 6 (MFC) にて、SDI で CScrollView を継承したビューに
画像を表示するアプリケーションを作ったことがあります。
それを .NET + C# に移植してみようと思っているのですが、
.NET での実装方法として Panel (AutoScroll を true) の上に
PictureBox を乗せてみました。表示方法は次の 2 つ試しました。
方法 (1) Image プロパティに Bitmap を設定
this.pictureBox1.Image = new Bitmap(filename);
方法 (2) PictureBox の Paint イベントにて、PictureBox の Graphics に DrawImage
// コンストラクタで private Image image = Bitmap(filename) で読み込んであります
e.Graphics.DrawImage(this.image, 0, 0, this.image.Width, this.image.Height);
this.pictureBox1.Size = this.image.Size;
両方の場合とも、見た目は Visual C++ 6 で作成したものと同じ
なのですが、スクロールバーをスクロールさせたときのスピードが
遅いのです。
Visual C++ のものより (タスクマネージャの CPU 使用率を見る限りで)
10 倍かそれ以上くらい遅いです。
画像の読み込みはコンストラクタでおこなっており、これ以上
高速化できないようなのですが、もっと高速化するには
どうすればよいでしょうか?
Visual C++ 6 では CView::OnDraw にて CDC::BitBlt で
描画しています。
よろしくお願いします m(_ _)m