<Return[E]><Top>

EnableWindow

Declare Function Api_EnableWindow& Lib "user32" Alias "EnableWindow" (ByVal hWnd&, bEnable&)

Declare Function EnableWindow Lib "user32" Alias "EnableWindow" (ByVal hwnd As Long, ByVal fEnable As Long) As Long

指定されたウィンドウまたはコントロールで、マウス入力とキーボード入力を有効または無効にする。

パラメータ
hWnd
    [入力]有効または無効にしたいウィンドウのハンドルを指定する。
bEnable
    [入力]ウィンドウを有効にするか無効にするかを指定する。TRUE を指定すると有効に、FALSE を指定すると無効になる。


戻り値
    ウィンドウが既に無効になっている場合、0 以外の値が返る。
    ウィンドウが無効になっていなかった場合は 0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。

解説
    ウィンドウを無効にする場合、システムはそのウィンドウへ WM_CANCELMODE メッセージを送信する。

    現在有効になっているウィンドウを無効にする場合、システムは WM_CANCELMODE メッセージの後に WM_ENABLE メッセージを

    送信する。(EnableWindow が制御を返す前に、これらのメッセージが送信される。)ウィンドウが既に無効になっていた場合、

    子ウィンドウも暗示的に無効にされる。ただし、子ウィンドウへ WM_ENABLE メッセージを送信することはあらない。
    ウィンドウは、アクティブにする前に有効にしておく必要がある。たとえば、あるアプリケーションがモードレスダイアログボックスを表示して

    いて自らのメインウィンドウを無効にしている場合、そのダイアログボックスを破棄する前にメインウィンドウを有効にしておく必要がある。

    そうしないと、別のウィンドウがキーボードの入力フォーカスを受け取って、アクティブになってしまう。子ウィンドウが無効になっている場合、

    Windows は、マウスメッセージを受け取るウィンドウを決定するときにその子ウィンドウを無視する。
    既定では、ウィンドウは有効化された状態で作成される。最初から無効化された状態でウィンドウを作成するには、CreateWindow 関数

    か CreateWindowEx 関数で WS_DISABLED スタイルを指定する。ウィンドウを作成した後で、アプリケーションは EnableWindow を使

    ってそのウィンドウを有効または無効にできる。
    ダイアログボックス内のコントロールを有効または無効にするために、EnableWindow 関数を使うこともできる。無効になったコントロールは、

    キーボードの入力フォーカスを受け取ることも、ユーザーがアクセスすることもできない。