FrameRgn リージョンの境界を描画

Cの宣言:

BOOL FrameRgn(
	HDC hDC,
	HRGN hRgn,
	HBRUSH hBrush,
	int Width,
	int Height);

VBの宣言:

Declare Function FrameRgn Lib "gdi32" ( _
    ByVal hDC As Long, _
    ByVal hRgn As Long, _
    ByVal hBrush As Long, _
    ByVal Width As Long, _
    ByVal Height As Long) As Long

説明:

hRgnで指定されたリージョンの境界を描画する。

引数の意味は以下の通り。
hDC 描画先のデバイスを識別するデバイスコンテキストのハンドル。
hRgn 描画するリージョンのハンドル。
hBrush 描画に使用するブラシのハンドル。
Width 縦方向の境界線を描画する際の幅。
Height 横方向の境界線を描画する際の高さ。

戻り値は、関数の実行結果を表す真偽値である。

VBのサンプル:

CreateEllipticRgnによって二つの交差する円で構成されるリージョンを作成する。次に、FrameRgnによって、このリージョンの枠を描画する。
'リージョンの枠を描画
Private Sub Command1_Click()

    Dim hRgn1 As Long
    Dim hRgn2 As Long
    
    'リージョンの作成
    hRgn1 = CreateEllipticRgn(0, 0, 100, 100)
    hRgn2 = CreateEllipticRgn(50, 50, 150, 150)
    
    'リージョンの結合
    CombineRgn hRgn1, hRgn1, hRgn2, RGN_XOR
    
    'リージョンの枠を描画
    FrameRgn Picture1.hDC, hRgn1, GetStockObject(WHITE_BRUSH), 10, 10

    '後処理
    DeleteObject hRgn1
    DeleteObject hRgn2

End Sub

(original text:2000/02/13 更新)

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