Share via


FindWindowExA 函式 (winuser.h)

擷取視窗的句柄,其類別名稱和視窗名稱符合指定的字串。 函式會搜尋子視窗,從指定子視窗後面的子視窗開始。 此函式不會執行區分大小寫的搜尋。

語法

HWND FindWindowExA(
  [in, optional] HWND   hWndParent,
  [in, optional] HWND   hWndChildAfter,
  [in, optional] LPCSTR lpszClass,
  [in, optional] LPCSTR lpszWindow
);

參數

[in, optional] hWndParent

類型: HWND

要搜尋其子視窗之父視窗的句柄。

如果 hwndParentNULL,函式會使用桌面視窗作為父視窗。 函式會在桌面的子視窗之間搜尋。

如果 hwndParentHWND_MESSAGE,函式會搜尋所有 僅限訊息的視窗

[in, optional] hWndChildAfter

類型: HWND

子視窗的句柄。 搜尋會以 Z 順序從下一個子視窗開始。 子窗口必須是 hwndParent 的直接子視窗,而不只是子系視窗。

如果 hwndChildAfterNULL,則搜尋會從 hwndParent 的第一個子窗口開始。

請注意,如果 hwndParenthwndChildAfter 都是 NULL,則函式會搜尋所有最上層和僅限訊息的視窗。

[in, optional] lpszClass

類型: LPCSTR

先前呼叫 RegisterClass 或 RegisterClassEx 函式所建立的類別名稱或類別 Atom。 Atom 必須放在 lpszClass 的低序字中;高序字必須是零。

如果 lpszClass 是字串,它會指定視窗類別名稱。 類別名稱可以是向 RegisterClass 或 RegisterClassEx 註冊的任何名稱,或是任何預先定義的控件類別名稱,也可以是 MAKEINTATOM(0x8000) 在此情況下,0x8000是功能表類別的 Atom。 如需詳細資訊,請參閱本主題的一節。

[in, optional] lpszWindow

類型: LPCSTR

視窗名稱 (視窗的標題) 。 如果此參數為 NULL,則所有視窗名稱都相符。

傳回值

類型: HWND

如果函式成功,則傳回值是具有指定類別和視窗名稱之視窗的句柄。

如果函式失敗,則傳回值為 NULL。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

FindWindowEx 函式只會搜尋直接子視窗。 它不會搜尋其他子代。

如果 lpszWindow 參數不是 NULL,FindWindowEx 會呼叫 GetWindowText 函式來擷取視窗名稱以進行比較。 如需可能發生之潛在問題的描述,請參閱 GetWindowText 的一節。

應用程式可以透過下列方式呼叫此函式。

FindWindowEx( NULL, NULL, MAKEINTATOM(0x8000), NULL );

請注意,0x8000是功能表類別的 Atom。 當應用程式呼叫此函式時,函式會檢查是否正在顯示應用程式所建立的內容功能表。

注意

winuser.h 標頭會將 FindWindowEx 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 winuser.h (包括 Windows.h)
程式庫 User32.lib
Dll User32.dll
API 集合 ext-ms-win-ntuser-window-l1-1-1 (於 Windows 8.1)

另請參閱

概念

EnumWindows

FindWindow

GetClassName

GetWindowText

參考

RegisterClass

RegisterClassEx

Windows