C++におけるFindWindowExA関数の使い方は?

C++のFindWindowExA関数は、指定したウィンドウの子ウィンドウを、指定したクラス名とウィンドウ名で検索するために使われます。その宣言は次のとおりです。

HWND FindWindowExA(
  HWND    hWndParent,
  HWND    hWndChildAfter,
  LPCSTR  lpszClass,
  LPCSTR  lpszWindow
);

パラメータの意味は次のとおりです。

  1. hWndParent:親ウィンドウのハンドル。このウィンドウの直下の子ウィンドウを検索します。
  2. 子ウィンドウのハンドルで、このウィンドウの後に検索を開始します。
  3. lpszClass: 子ウィンドウクラス名。NULLを指定するとすべてのクラスが検索されます。
  4. lpszWindow:子ウィンドウのウィンドウ名。すべてウィンドウを検索するには NULL を使用します。

見つかった子のウィンドウのハンドルを返します。一致する子のウィンドウが見つからなかった場合は NULL を返します。

1つの例を以下に示します。

HWND hwndParent = FindWindowA("ParentWindowClass", "ParentWindowName");
if(hwndParent != NULL)
{
    HWND hwndChild = FindWindowExA(hwndParent, NULL, "ChildWindowClass", "ChildWindowName");
    if(hwndChild != NULL)
    {
        // 找到了子窗口,可以对其进行操作
    }
    else
    {
        // 没有找到子窗口
    }
}
else
{
    // 没有找到父窗口
}
bannerAds