多角形を描画するには

多角形を描画してみます。
キーワードは「Polygon()関数」です。
Polygon()関数は各頂点をPOINTAPI構造体の配列として与えることで多角形を描画します。
開始点と終点は自動的に結ばれます。
サンプルでは点の配列を5箇所与えることで★を描画しています。

実行時の様子

Private Type POINTAPI
    x As Long               'X座標
    y As Long               'Y座標
End Type
'多角形を描画する
Private Declare Function Polygon Lib "gdi32.dll" _
    (ByVal hdc As Long, lpPoints As Any, ByVal cPoints As Long) As Long

Private Sub Form_Load() Me.Picture1.ScaleMode = 3 'ピクセルモード Me.Picture1.BackColor = vbWhite '背景色 End Sub
Private Sub Picture1_Paint() Dim lpPoints(4) As POINTAPI Dim dx, dy dx = Me.Picture1.ScaleWidth - 20 dy = Me.Picture1.ScaleHeight - 20 Me.Picture1.ForeColor = vbRed Randomize lpPoints(0).x = dx / 2 + 10: lpPoints(0).y = 10 lpPoints(1).x = dx / 3 + 10: lpPoints(1).y = dy - 10 lpPoints(2).x = dx - 10: lpPoints(2).y = dy / 3 + 10 lpPoints(3).x = 10: lpPoints(3).y = lpPoints(2).y lpPoints(4).x = dx / 3 * 2 + 10: lpPoints(4).y = lpPoints(1).y Call Polygon(Me.Picture1.hdc, lpPoints(0), 5) End Sub
ダウンロード