SetWindowRgn

指定されたウィンドウのウィンドウリージョンを設定します。ウィンドウリージョンは、システムが描画を許可するウィンドウ内の領域を決定します。システムは、ウィンドウリージョンから外れるウィンドウの部分を表示しません。

int SetWindowRgn(
    HWND hWnd,        // ウィンドウハンドル
    HRGN hRgn,        // リージョンハンドル
    BOOL fRedraw      // 再描画フラグ
);

USER32.DLL

引数

hWnd

ウィンドウリージョンを設定するウィンドウのハンドルを指定します。

hRgn

リージョンのハンドルを指定します。このパラメータで指定されたリージョンがウィンドウリージョンに設定されます。

このパラメータに 0 (NULL) を指定すると、ウィンドウリージョンは NULL に設定されます。

fRedraw

ウィンドウリージョンが設定された後にシステムがウィンドウを再描画するかどうかを指定します。 1 (TRUE) を指定すると、ウィンドウが再描画されます。 0 (FALSE) を指定すると、再描画されません。

戻り値

成功すると 0 以外の値が返ります。

失敗すると 0 が返ります。

Windows NT/2000/XP: 拡張エラー情報を取得するには、 GetLastError 関数を使います。

解説

ウィンドウリージョンの座標はウィンドウのクライアントエリアではなく、ウィンドウの左上隅からの相対的な座標で表されます。

SetWindowRgn 関数が成功すると、システムは、リージョンのコピーを作成せずに、 hRgn パラメータで指定されたリージョンを所有します。したがって、このリージョンハンドルを他のリージョン操作関数に渡すことはできません。特に、リージョンハンドルを削除してはいけません。このリージョンは、必要でなくなったときにシステムによって削除されます。

ウィンドウのウィンドウリージョンを取得するには、 GetWindowRgn 関数を使います。

対応情報

Windows 95 以降 / Windows NT 3.51 以降