共用方式為


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 版)

另請參閱

DefSubclassProc

GetWindowSubclass

RemoveWindowSubclass