プラットフォーム SDK
EnableWindow
指定されたウィンドウまたはコントロールで、マウス入力とキーボード入力を有効または無効にします。入力を無効にすると、そのウィンドウはマウス入力やキーボード入力を受け付けません。入力を有効にすると、そのウィンドウはマウス入力やキーボード入力を受け付けます。
BOOL EnableWindow(
HWND hWnd, // ウィンドウハンドル
BOOL bEnable // 入力を有効または無効にする
);
パラメータ
- hWnd
- [入力]有効または無効にしたいウィンドウのハンドルを指定します。
- bEnable
- [入力]ウィンドウを有効にするか無効にするかを指定します。TRUE を指定すると有効に、FALSE を指定すると無効になります。
戻り値
ウィンドウが既に無効になっている場合、0 以外の値が返ります。
ウィンドウが無効になっていなかった場合は 0 が返ります。拡張エラー情報を取得するには、 関数を使います。
解説
ウィンドウを無効にする場合、システムはそのウィンドウへ メッセージを送信します。現在有効になっているウィンドウを無効にする場合、システムは WM_CANCELMODE メッセージの後に メッセージを送信します。(EnableWindow が制御を返す前に、これらのメッセージが送信されます。)ウィンドウが既に無効になっていた場合、子ウィンドウも暗示的に無効にされます。ただし、子ウィンドウへ WM_ENABLE メッセージを送信することはありません。
ウィンドウは、アクティブにする前に有効にしておく必要があります。たとえば、あるアプリケーションがモードレスダイアログボックスを表示していて自らのメインウィンドウを無効にしている場合、そのダイアログボックスを破棄する前にメインウィンドウを有効にしておく必要があります。そうしないと、別のウィンドウがキーボードの入力フォーカスを受け取って、アクティブになってしまいます。子ウィンドウが無効になっている場合、Windows は、マウスメッセージを受け取るウィンドウを決定するときにその子ウィンドウを無視します。
既定では、ウィンドウは有効化された状態で作成されます。最初から無効化された状態でウィンドウを作成するには、CreateWindow 関数か CreateWindowEx 関数で WS_DISABLED スタイルを指定します。ウィンドウを作成した後で、アプリケーションは EnableWindow を使ってそのウィンドウを有効または無効にできます。
ダイアログボックス内のコントロールを有効または無効にするために、EnableWindow 関数を使うこともできます。無効になったコントロールは、キーボードの入力フォーカスを受け取ることも、ユーザーがアクセスすることもできません。
対応情報
Windows NT/2000:Windows NT 3.1 以降
Windows 95/98:Windows 95 以降
ヘッダーファイル:Winuser.h 内で宣言、Windows.h をインクルード
インポートライブラリ:User32.lib を使用
参照
CreateWindow, CreateWindowEx, IsWindowEnabled,