プラットフォーム SDK
SetWindowRgn
指定されたウィンドウのウィンドウリージョンを設定します。ウィンドウリージョンは、ウィンドウのうち、システムが描画を行える領域を決定します。システムは、ウィンドウのうち、ウィンドウリージョンの外側にある部分を表示しません。
int SetWindowRgn(
HWND hWnd, // ウィンドウのハンドル
HRGN hRgn, // リージョンのハンドル
BOOL bRedraw // ウィンドウ再描画オプション
);
パラメータ
- hWnd
- ウィンドウリージョンを設定したいウィンドウのハンドルを指定します。
- hRgn
- リージョンのハンドルを指定します。このリージョンが、新しいウィンドウリージョンになります。
hRgn が NULL の場合、この関数はウィンドウリージョンを NULL に設定します。
- bRedraw
- ウィンドウリージョンを設定した後に、ウィンドウを再描画するかどうかを指定します。TRUE を指定すると、システムは再描画を行います。FALSE を指定すると、再描画を行ないません。
ウィンドウが表示されている場合は、通常、TRUE を指定します。
戻り値
関数が成功すると、0 以外の値が返ります。
関数が失敗すると、0 が返ります。
Windows NT/2000:拡張エラー情報を取得するには、 関数を使います。
解説
この関数を呼び出すと、システムは WM_WINDOWPOSCHANGING と WM_WINDOWPOSCHANGED の各メッセージをウィンドウへ送信します。
ウィンドウリージョンの座標は、クライアント領域の左上隅ではなく、ウィンドウの左上隅を基準とする相対座標です。
SetWindowRgn 関数が成功すると、システムは、パラメータ hRgn で指定したリージョンを所有します。システムは、このリージョンのコピーを作成しません。したがって、これ以降はこのリージョンハンドルに対して関数を呼び出すべきではありません。特に、このリージョンハンドルを削除しないでください。必要がなくなると、システムはこのリージョンハンドルを自動的に削除します。
ウィンドウリージョンを取得するには、GetWindowRgn 関数を使います。
対応情報
Windows NT/2000:Windows NT 3.51 以降
Windows 95/98:Windows 95 以降
ヘッダー:Winuser.h 内で宣言、Windows.h をインクルード
インポートライブラリ:User32.lib を使用
参照
GetWindowRgn,