SetWindowSubclass 函式 (commctrl.h)
安裝或更新視窗子類別回呼。
語法
BOOL SetWindowSubclass(
[in] HWND hWnd,
[in] SUBCLASSPROC pfnSubclass,
[in] UINT_PTR uIdSubclass,
[in] DWORD_PTR dwRefData
);
參數
[in] hWnd
類型: HWND
正在子類別化之視窗的句柄。
[in] pfnSubclass
類型: SUBCLASSPROC
視窗程式的指標。 此指標和子類別標識碼可唯一識別這個子類別回呼。 如需回呼函式原型,請參閱 SUBCLASSPROC。
[in] uIdSubclass
類型: UINT_PTR
子類別標識碼。 此標識碼與子類別程式可唯一識別子類別。 若要移除子類別,請將子類別程式和此值傳遞至 RemoveWindowSubclass 函式 。 這個值會傳遞至 uIdSubclass 參數中的子類別程式。
[in] dwRefData
類型: DWORD_PTR
參考數據的DWORD_PTR 。 此值的意義是由呼叫的應用程式所決定。 這個值會傳遞至 dwRefData 參數中的子類別程式。 不同的 dwRefData 會與視窗句柄、子類別程式和 uIdSubclass 的每個組合相關聯。
傳回值
類型: BOOL
如果 已成功安裝子類別回呼,則為TRUE;否則為 FALSE。
備註
子類別回呼是由回呼位址和呼叫端定義子類別標識碼的組合來識別。 如果尚未安裝回呼位址和標識符組,則此函式會安裝子類別。 如果已安裝配對,則此函式只會更新參考數據。
每個回呼都可以儲存參考數據的單一 DWORD_PTR ,當呼叫回呼函式來篩選訊息時,會傳遞至回呼函式。 不會對回呼執行參考計數;它可能會重複呼叫 SetWindowSubclass 來改變其參考資料元素的值。
警告 您無法使用子類別化協助程式函式,跨線程將視窗子類別化。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | commctrl.h |
程式庫 | Comctl32.lib |
Dll | Comctl32.dll (5.8 版或更新版本) |
API 集合 | ext-ms-win-shell-comctl32-window-l1-1-0 (於 Windows 10 10.0.14393 版) |