CWnd::EnableWindow
更新 : 2007 年 11 月
マウス入力およびキーボード入力を許可または禁止します。
BOOL EnableWindow(
BOOL bEnable = TRUE
);
パラメータ
- bEnable
指定されたウィンドウを使用許可にするか使用禁止にするかを指定します。このパラメータが TRUE のときは、ウィンドウを使用許可にします。FALSE のときは、ウィンドウを使用禁止にします。
戻り値
EnableWindow メンバ関数が呼び出される前の状態を返します。ウィンドウが直前に使用禁止であった場合は 0 以外を返します。ウィンドウが使用許可であった場合、またはエラーが発生した場合は 0 を返します。
解説
入力が禁止されると、マウスのクリックやキー ストロークなどの入力は無視されます。入力が許可されると、ウィンドウはすべての入力を処理します。
許可状態が変更されると、この関数から戻る前に WM_ENABLE メッセージが送られます。
禁止されると、WM_ENABLE メッセージを受け取らなくてもすべての子ウィンドウも暗黙に禁止されます。
ウィンドウは、アクティブになる前に使用許可である必要があります。たとえば、アプリケーションがモードレス ダイアログ ボックスを表示していて、メイン ウィンドウを使用禁止にしているときは、ダイアログ ボックスが破棄される前にメイン ウィンドウは使用許可にされている必要があります。そうしないと、ほかのウィンドウが入力フォーカスを得てアクティブになります。子ウィンドウが使用禁止にされると、Windows がどのウィンドウがマウス メッセージを取得する必要があるかを決定するときにその子ウィンドウは無視されることになります。
既定では、ウィンドウが作成されたときは入力許可状態です。アプリケーションは、ウィンドウを作成するときに Create または CreateEx メンバ関数で WS_DISABLED スタイルを指定すると、ウィンドウの初期作成時に入力禁止状態にできます。ウィンドウ作成後に、アプリケーションは EnableWindow メンバ関数を使ってウィンドウを入力禁止または入力許可にできます。
アプリケーションはこの関数を使ってダイアログ ボックスのコントロールの入力禁止、入力許可を設定できます。入力禁止にされたコントロールは入力フォーカスを受け取ること、アクセスすることはできません。
使用例
//CMyFileDialog is a CFileDialog-derived class
//OnInitDialog is the handler for WM_INITDIALOG
BOOL CMyFileDialog::OnInitDialog()
{
CFileDialog::OnInitDialog();
CWnd* pWndParent = GetParent();
//make sure you add #include <dlgs.h> for IDs 'edt1' & 'stc3'
//disables the 'file name' edit and static control
//of the standard file open dialog
//get handle of 'file name' combobox control & disable it
CWnd* pWnd = pWndParent->GetDlgItem(cmb13);
pWnd->EnableWindow(FALSE);
//get handle of 'file name' static control & disable it
pWnd = pWndParent->GetDlgItem(stc3);
pWnd->EnableWindow(FALSE);
return TRUE;
}
必要条件
ヘッダー : afxwin.h