GetRgnBox リージョンの境界長方形の取得

Cの宣言:

int GetRgnBox(
	HRGN hRgn,
	LPRECT r);

VBの宣言:

Declare Function GetRgnBox Lib "gdi32" ( _
    ByVal hRgn As Long, _
    ByRef r As RECT) As Long

説明:

hRgnで指定されたリージョンに外接する長方形を取得する。

引数の意味は以下の通り。
hRgn 取得元のリージョンのハンドル。
r 取得結果の長方形の座標。

戻り値は、以下のフラグのいずれかである。
NULLREGION 空のリージョンである。
SIMPLEREGION 単一の長方形からなるリージョンである。
COMPLEXREGION 複数の長方形からなるリージョンである。
ERROR エラーが発生した。

VBのサンプル:

CreateEllipticRgnによって二つの交差する円で構成されるリージョンを作成する。次に、GetRgnBoxによってリージョンの境界長方形を取得し、描画する。
'リージョンの境界長方形を描画
Private Sub Command1_Click()

    Dim hRgn1 As Long
    Dim hRgn2 As Long
    Dim r As RECT
    
    'リージョンの作成
    hRgn1 = CreateEllipticRgn(100, 100, 200, 200)
    hRgn2 = CreateEllipticRgn(50, 50, 150, 150)
    
    'リージョンの結合
    CombineRgn hRgn1, hRgn1, hRgn2, RGN_XOR
    
    'リージョンの描画
    FillRgn Picture1.hDC, hRgn1, GetStockObject(WHITE_BRUSH)

    GetRgnBox hRgn1, r
    
    Picture1.ScaleMode = vbPixels
    Picture1.Line (r.Left, r.Top)-(r.Right, r.Bottom), vbWhite, B
    
    '後処理
    DeleteObject hRgn1
    DeleteObject hRgn2

End Sub


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

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