共用方式為


FindWindowExW 函式 (winuser.h)

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

語法

HWND FindWindowExW(
  [in, optional] HWND    hWndParent,
  [in, optional] HWND    hWndChildAfter,
  [in, optional] LPCWSTR lpszClass,
  [in, optional] LPCWSTR lpszWindow
);

參數

[in, optional] hWndParent

類型:HWND

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

如果 hwndParent 為 NULL,則函式會使用桌面視窗做為父視窗。 函式會在桌面的子視窗之間搜尋。

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

[in, optional] hWndChildAfter

類型:HWND

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

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

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

[in, optional] lpszClass

類型:LPCWSTR

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

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

[in, optional] lpszWindow

類型:LPCWSTR

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

傳回值

類型:HWND

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

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

言論

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

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

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

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

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

注意

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

要求

要求 價值
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平臺 窗戶
標頭 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