FindWindowEx(A)

指定されたクラス名およびウィンドウ名と一致するトップレベルウィンドウのハンドルを取得します。この関数は、指定された子ウィンドウの後ろにある子ウィンドウから検索を開始します。

HWND FindWindowExA(
    HWND    hParent,      // parent window
    HWND    hChildAfter,  // previous window
    LPCTSTR pClassName,   // window class
    LPCTSTR pWindowName   // window title
);

USER32.DLL

引数

hParent

親ウィンドウのハンドルを指定します。このパラメータで指定されたウィンドウの子ウィンドウが検索対象になります。

0 (NULL) を指定すると、親ウィンドウとしてデスクトップウィンドウが指定されます。

Windows 2000/XP: -3 (HWND_MESSAGE) を指定すると、メッセージ専用ウィンドウを検索します。

hChildAfter

子ウィンドウのハンドルを指定します。このパラメータで指定されたウィンドウの次のZ位置にあるウィンドウから検索を開始します。このウィンドウは、hParentパラメータで指定されるウィンドウの直接の子ウィンドウでなければいけません。

0 (NULL) を指定すると、hParentパラメータで指定されるウィンドウが持つ最初の子ウィンドウから検索を開始します。

hParentパラメータおよびhChildAfterパラメータがともに0 (NULL) である場合には、すべてのトップレベルウィンドウおよびメッセージ専用ウィンドウが検索されます。

pClassName

クラス名を表す文字列のアドレスを指定します。または、以前のRegisterClass関数またはRegisterClassEx関数の戻り値として返されるクラスアトムを指定します。アトムを指定する場合には、このパラメータの下位ワードがアトムとなるようにし、上位ワードはゼロになるようにしなければいけません。文字列を指定する場合には、ウィンドウクラス名を指定します。ウィンドウクラスの名前は、RegisterClass関数またはRegisterClassEx関数で登録されたクラス名か、システムの定義済みコントロールのクラス名を指定することができます。クラス名の大文字・小文字は区別されません。

0 (NULL) を指定すると、ウィンドウタイトルがpWindowNameパラメータと一致するすべてのウィンドウが検索対象となります。

このパラメータに、メニュークラスに対するアトム値0x8000を指定することができます(下記の解説を参照)。

pWindowName

ウィンドウ名(ウィンドウタイトル)を表す文字列のアドレスを指定します。

0 (NULL) を指定すると、ウィンドウクラスがpClassNameパラメータと一致するすべてのウィンドウが検索対象となります。

戻り値

成功すると、指定されたウィンドウクラスおよびウィンドウ名を持つウィンドウのハンドルが返ります。

失敗すると0 (NULL) が返ります。拡張エラー情報を取得するには、GetLastError関数を使います。

解説

pWindowNameパラメータに0 (NULL) 以外の値を指定すると、ウィンドウ名を比較するためFindWindow関数はGetWindowText関数を呼び出してウィンドウ名を取得します。

pClassNameパラメータにメニューウィンドウのアトム値0x8000を指定し、それ以外のパラメータに0 (NULL) を指定することで、アプリケーションが作成したコンテキストメニューが表示されているかどうかを確認することができます。

対応情報

Windows 95 以降 / Windows NT 4.0 以降