投稿者 魔界の仮面弁士  (社会人) 投稿日時 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 は同値である事が多いですが、たとえば一部のプリンターでは
縦横の解像度が異なるケースもあります。(もっとも、今回は画面への出力なのですけれども)