Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
図形の塗りつぶし
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=9715#CommentId15324
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
よねKEN
 (社会人)
投稿日時
2010/7/29 23:13:11
> Private Declare Function CreateBrushIndirect Lib "gdi32" _
> (ByVal lpLogBrush As LOGBRUSH) As <MarshalAs(UnmanagedType.Bool)> Boolean
ただしくは、「ByRef lpLogBrush As LOGBRUSH」ですね。
VB6ではByRef/ByValの指定を省略するとByRefを指定したものとして扱われます。
> APIを使わない方法ですが、シード・フィル アルゴリズムを調べてみたところ、2008にはPointと言うメソッドがないというのが大問題でここでまた進まなくなってしまいました。
> bitmapならGetPixelが使えるのですが、FormやPictureBoxなどは、調べてみてもBackColorプロパティを使うとかここでは意味のないことしかわかりませんでした。
FormやPictureBoxに対して描画する場合にも、
BitmapクラスのGetPixel/SetPixelを使う方法が使えます。
最初の質問投稿で、
> Dim g As Graphics = Me.CreateGraphics
というコードがあり、CreateGraphicsメソッドを使っていますが、
このメソッドを使わないようにします。
具体的にはどうやるのかというと、手順は以下のURLを参照してください。
http://dobon.net/vb/dotnet/graphics/pictureboximageanddrawimage.html
ポイントは、
(1)Bitmapクラスのインスタンスを用意する
(2)GraphicsクラスはこのBitmapオブジェクトからGraphics.FromImageメソッドで取得する
(3)PictureBoxを使う場合なら、このBitmapオブジェクトをImageプロパティに設定する
ということです。
(PictureBoxを使わずに、Formに直接描画するような場合であれば、
(1)、(2)の手順までは同じで、FormのPaintイベントの中でe.Graphicsを使って、
Graphics.DrawImageメソッドで(1)のBitmapを描画してやります)