三角形(の枠線)によるクリッピング(VB)

説明:

三角形のパスを作成し、これをWidenPathによって三角形の枠線のパスに変換する。変換した図形をSelectClipPathによってクリッピングパスに指定し、複数の直線を描画してみて正しく意図したクリッピングが為されていることを確認する。

キーワード:

SetPolyFillMode, CreatePen, SelectObject, BeginPath, MoveToEx, LineTo, CloseFigure, EndPath, WidenPath, SelectClipPath, DeleteObject

サンプルコード:

Private Sub Command1_Click()

    Dim I As Long
    Dim hPen As Long
    Dim hOldPen As Long

    Picture1.ScaleMode = vbPixels
    SetPolyFillMode Picture1.hDC, WINDING

    'パス用のペンの設定
    hPen = CreatePen(PS_SOLID, 20, vbWhite)
    hOldPen = SelectObject(Picture1.hDC, hPen)

    'パスブラケットのオープン
    BeginPath Picture1.hDC
    
    '三角形を描画
    MoveToEx Picture1.hDC, 100, 50, 0
    LineTo Picture1.hDC, 50, 150
    LineTo Picture1.hDC, 150, 150
    CloseFigure Picture1.hDC
    
    'パスブラケットのクローズ
    EndPath Picture1.hDC
    
    '(中空の)三角形をクリッピングパスとして設定する
    WidenPath Picture1.hDC
    SelectClipPath Picture1.hDC, RGN_COPY
    
    SelectObject Picture1.hDC, hOldPen
    DeleteObject hPen

    '集中線の描画
    For I = 1 To 400 Step 5
        Picture1.Line (0, 0)-(I, 400 - I)
    Next

End Sub

(original text:1999/03/05 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。