Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
作ったプログラムがうまくいきません、アドバイスお願いします。
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=10147#CommentId20273
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2011/4/1 09:56:59
> Declare Function ExtFloodFill
塗りつぶしにこの API を使うという点は正しいですが、現状のコードでは
ボタンを押しても、この API を呼び出すには至っていませんよね。
たとえば、Command1_Click の最後に「Paint 0, 0」と記述すれば、三角形の外側が塗りつぶされますし、
三角形の内部点を指定すれば、三角形の内側が塗りつぶされることでしょう。
> Private Function Paint(X As Long, Y As Long)
戻り値を使わないのであれば、Function ではなく Sub を使いましょう。
> Dim T
> T = Screen.TwipsPerPixelX
T の型を明示しましょう。
> ExtFloodFill Me.hdc, X / T, Y / T, vbBlack, 0
本来は、縦座標には TwipsPerPixelX ではなく TwipsPerPixelY を使うべきです。
確かに TwipsPerPixelXとY は同値である事が多いですが、たとえば一部のプリンターでは
縦横の解像度が異なるケースもあります。(もっとも、今回は画面への出力なのですけれども)