扇形を描画するには

扇形を描画してみます。
キーワードは「Pie()関数」です。
Pie()関数は扇形を包含する矩形を指定して、その中に開始点と終点を
指定することで扇形を描画する関数です。
扇形の周囲の線はデバイスコンテキストに選択されているペン
塗りつぶしは、同様にブラシを使用します。

実行時の様子

Private Type POINTAPI
    X As Long                        'X座標
    Y As Long                        'Y座標
End Type
'現在の位置から指定の位置まで直線を描画する
Private Declare Function LineTo Lib "gdi32.dll" (ByVal hdc As Long, _
    ByVal nXEnd As Long, ByVal nYEnd As Long) As Long
'現在の位置を変更する
Private Declare Function MoveToEx Lib "gdi32.dll" _
    (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal lpCoord As Long) As Long
'カーソルの現在のスクリーン座標の取得
Private Declare Function GetCursorPos Lib "user32.dll" _
    (lpPoint As POINTAPI) As Long
'点座標をスクリーン座標からクライアント座標に変換する
Private Declare Function ScreenToClient Lib "user32.dll" _
    (ByVal hWnd As Long, lpPoint As POINTAPI) As Long
Dim Flag As Boolean

Private Sub Form_Load() Me.Picture1.ScaleMode = 3 'ピクセルモード Flag = False 'フラグ End Sub
Private Sub Picture1_Click() Dim lpPoint As POINTAPI 'マウスポインタの位置取得 Call GetCursorPos(lpPoint) Call ScreenToClient(Me.Picture1.hWnd, lpPoint) If Flag = False Then '初めてクリックされたとき Flag = True Call MoveToEx(Me.Picture1.hdc, lpPoint.X, lpPoint.Y, 0) Else '2回目以降のとき Call LineTo(Me.Picture1.hdc, lpPoint.X, lpPoint.Y) End If End Sub
ダウンロード