Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
境界の色が違う複数の図形の塗りつぶし
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=10691#CommentId22682
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
下田の住人
 (社会人)
投稿日時
2012/2/9 17:13:23
初めて投稿致します。よろしくお願い致します。
http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=9715のyamada様の投稿を基本にして、2つの境界色を異にする長方形を描き、その領域の塗りつぶしを試みました。
閉領域の塗りつぶしは出来るようにはなりましたが、すぐ消えてしまい、再度のマウスクリックで安定する状態となります。「消え」を防ぐための方法につきよろしく御指導下さい。
[CODE]
Private Sub Form1_Paint(sender As Object, e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
PictureBox1.Refresh()
PictureBox1.CreateGraphics.DrawRectangle(Pens.Red, 50, 80, 120, 100)
PictureBox1.CreateGraphics.DrawRectangle(Pens.Black, 80, 120, 120, 100)
End Sub
Private Sub PictureBox1_MouseClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseClick
Dim g As Graphics = PictureBox1.CreateGraphics
Dim wFillType As UInteger = 1 ' FLOODFILLSURFACE
Dim hNewBrush As IntPtr
Dim hOldBrush As IntPtr
Dim NewBrush As LOGBRUSH
Dim hDC As IntPtr
hDC = g.GetHdc
NewBrush.lbColor = ColorTranslator.ToWin32(Color.Yellow)
NewBrush.lbStyle = 0
NewBrush.lbHatch = 0
hNewBrush = CreateBrushIndirect(NewBrush)
hOldBrush = SelectObject(hDC, hNewBrush)
ExtFloodFill(hDC, e.X, e.Y, GetPixel(hDC, e.X, e.Y), wFillType)
g.ReleaseHdc()
hNewBrush = SelectObject(hDC, hOldBrush)
DeleteObject(hNewBrush)
g.Dispose()
end sub
{/CODE]