SetWindowRgn 関数 (winuser.h)

SetWindowRgn 関数は、ウィンドウのウィンドウ領域を設定します。 ウィンドウ領域は、システムが描画を許可するウィンドウ内の領域を決定します。 システムでは、ウィンドウ領域の外側にあるウィンドウの一部は表示されません

構文

int SetWindowRgn(
  [in] HWND hWnd,
  [in] HRGN hRgn,
  [in] BOOL bRedraw
);

パラメーター

[in] hWnd

ウィンドウ領域を設定するウィンドウへのハンドル。

[in] hRgn

リージョンへのハンドル。 関数は、ウィンドウのウィンドウ領域をこの領域に設定します。

hRgnNULL の場合、関数はウィンドウ領域を NULL に設定します。

[in] bRedraw

ウィンドウ領域を設定した後に、システムがウィンドウを再描画するかどうかを指定します。 bRedrawTRUE の場合、システムはそうします。それ以外の場合は実行されません。

通常、ウィンドウが表示されている場合は 、bRedrawTRUE に 設定します。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。

注釈

この関数が呼び出されると、システムは WM_WINDOWPOSCHANGING を送信し、 メッセージを ウィンドウにWM_WINDOWPOSCHANGEDします。

ウィンドウのウィンドウ領域の座標は、ウィンドウのクライアント領域ではなく、ウィンドウの左上隅に対して相対的です。

メモ ウィンドウ レイアウトが右から左 (RTL) の場合、座標はウィンドウの右上隅を基準とします。 「ウィンドウ レイアウトとミラーリング」を参照してください。
 
SetWindowRgn の呼び出しが成功すると、システムはリージョン ハンドル hRgn で指定されたリージョンを所有します。 システムはリージョンのコピーを作成しません。 したがって、このリージョン ハンドルを使用してそれ以上の関数呼び出しを行うべきではありません。 特に、このリージョン ハンドルは削除しないでください。 不要になったリージョン ハンドルは、システムによって削除されます。

ウィンドウのウィンドウ領域を取得するには、 GetWindowRgn 関数を呼び出します。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winuser.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll
API セット ext-ms-win-ntuser-draw-l1-1-0 (Windows 8で導入)

こちらもご覧ください

GetWindowRgn

描画関数と描画関数

描画と描画の概要

WM_WINDOWPOSCHANGING

WM_WINDOWPOSCHANGED