tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルpictureboxの描画について
記事No1954
投稿日: 2005/08/02(Tue) 23:38
投稿者colab
[OSのVer]:WindowsXP SP2    [VBのVer]:VB.NET2003
いつも貴重な資料を公開いただき有り難うございます。
さて、この度本格的に.netへ移行すべくいろいろといじっています。
早速ですがpictureboxの描画についてご教授下さい。

例えば、フォームにピクチャーを貼り付けロード時に塗りつぶしの四角を書きます。
Dim mGrph As Graphics
mGrph = picture.CreateGraphics
Dim x1 As Single=100
Dim x2 As Single=200
Dim y1 As Single=100
Dim y2 As Single=200
Dim Rs As New Rectangle(x1, y1, x2, y2)
mGrph.FillRectangle(Brushes.Blue, Rs)

マウスのMouseDown(→ドラッグ→)MouseUpを利用してピクチャの任意の範囲を指定したら
その部分が拡大される処理を作っています。
このとき既に描画されている絵を消さすにドラッグ範囲の軌跡を表示したいのですが。
VB6ではpicture.AutoRedrawを利用することでpictureをクリアしてもグラフィックを
残せました。.netではどのようにすればよいのでしょう。
ちなみに今はMouseMoveでクリア+再描画にしてみました。
ちょっとチカチカして目が痛くなりそうです。

[ツリー表示へ]
タイトルRe: pictureboxの描画について
記事No1963
投稿日: 2005/08/08(Mon) 09:13
投稿者魔界の仮面弁士
> VB6ではpicture.AutoRedrawを利用することでpictureをクリアしてもグラフィックを
> 残せました。.netではどのようにすればよいのでしょう。
> ちなみに今はMouseMoveでクリア+再描画にしてみました。
> ちょっとチカチカして目が痛くなりそうです。

案1) 画像をBitmapクラスに描画しておき、それをBackgroundImageプロパティに割り当てる。
案2) 全部を再描画するのではなく、必要な範囲(PaintEventArgs.ClipRectangle)だけを描画する。

[ツリー表示へ]
タイトルRe^2: お礼
記事No1965
投稿日: 2005/08/08(Mon) 15:02
投稿者colab
> 案1) 画像をBitmapクラスに描画しておき、それをBackgroundImageプロパティに割り当てる。
> 案2) 全部を再描画するのではなく、必要な範囲(PaintEventArgs.ClipRectangle)だけを描画する


御助言有り難うございます。
案2の方でやってみようと思います。
有り難うございました。

[ツリー表示へ]