LockWindowUpdate

https://msdn.microsoft.com/ja-jp/library/cc428944.aspx https://msdn.microsoft.com/ja-jp/library/ms534901.aspx https://msdn.microsoft.com/ja-jp/library/ms534901.aspx

指定されたウィンドウ内での描画を無効または有効にします。ウィンドウ内での描画を無効にすることを、ウィンドウをロックすると言います。ロックできるウィンドウの数は、一度に 1 つだけです。

BOOL LockWindowUpdate(
  HWND hWndLock   // ウィンドウのハンドル
);

パラメータ

hWndLock
描画を無効にしたい(ロックしたい)ウィンドウのハンドルを指定します。NULL を指定すると、ロックが解除され、描画が有効になります。

戻り値

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

関数が失敗すると、0 が返ります。このことは、エラーが発生したか、他のウィンドウが既にロックされていることを意味します。

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

解説

ロックされたウィンドウ(またはロックされた子ウィンドウ)を持つアプリケーションが、GetDCGetDCExBeginPaint 関数のいずれかを呼び出すと、呼び出された関数は可視リージョンが空のデバイスコンテキストを返します。アプリケーションが hWndLock パラメータに NULL を指定して LockWindowUpdate を呼び出してロックを解除するまでは、この動作が続きます。

アプリケーションがロック済みウィンドウへの描画を行おうとすると、システムは、境界長方形の中で試みられた操作の範囲を記録します。ウィンドウのロックが解除されると、システムはこの境界長方形内の領域を無効にし、それまでロックされていたウィンドウとその子ウィンドウへ、最終的に メッセージを強制的に送信します。ウィンドウへの更新がロックされていた間に描画が行われなかった場合は、どの領域も無効化されません。

LockWindowUpdate 関数は、指定されたウィンドウを非表示にしません。また、WS_VISIBLE スタイルビットをクリアしません。

ロックされているウィンドウは、移動できません。

対応情報

Windows NT/2000:Windows NT 3.1 以降
Windows 95/98:Windows 95 以降
ヘッダー:Winuser.h 内で宣言、Windows.h をインクルード
インポートライブラリ:User32.lib を使用

参照

BeginPaint, GetDC, GetDCEx,

表示: