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 是 HWND_MESSAGE,則函式會搜尋所有 僅限訊息的視窗。
[in, optional] hWndChildAfter
類型:HWND
子視窗的句柄。 搜尋會以 Z 順序的下一個子視窗開始。 子窗口必須是 hwndParent的直接子視窗,而不只是子系視窗。
如果 hwndChildAfterNULL,搜尋會從 hwndParent的第一個子窗口開始。
請注意,如果 hwndParent 和 hwndChildAfter 都 NULL,則函式會搜尋所有最上層和僅限訊息的視窗。
[in, optional] lpszClass
類型:LPCWSTR
先前呼叫 registerClass 或 RegisterClassEx 函式所建立的類別名稱或類別 atom。 atom 必須放在低序字組 lpszClass中;高序字必須是零。
如果 lpszClass 為字串,則會指定視窗類別名稱。 類別名稱可以是 向 RegisterClass 或 RegisterClassEx註冊的任何名稱,或是任何預先定義的控件類別名稱,也可以 MAKEINTATOM(0x8000)
。 在此後一種情況下,0x8000是功能表類別的 Atom。 如需詳細資訊,請參閱本主題的一節。
[in, optional] lpszWindow
類型:LPCWSTR
視窗名稱(視窗的標題)。 如果此參數 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 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 中引進) |
另請參閱
概念
參考