SetWindowSubclass 関数 (commctrl.h)

ウィンドウ サブクラス コールバックをインストールまたは更新します。

構文

BOOL SetWindowSubclass(
  [in] HWND         hWnd,
  [in] SUBCLASSPROC pfnSubclass,
  [in] UINT_PTR     uIdSubclass,
  [in] DWORD_PTR    dwRefData
);

パラメーター

[in] hWnd

型: HWND

サブクラス化されるウィンドウのハンドル。

[in] pfnSubclass

型: サブクラスPROC

ウィンドウ プロシージャへのポインター。 このポインターとサブクラス ID は、このサブクラス コールバックを一意に識別します。 コールバック関数のプロトタイプについては、 サブクラスPROC に関するページを参照してください。

[in] uIdSubclass

種類: UINT_PTR

サブクラス ID。 この ID はサブクラス プロシージャと共にサブクラスを一意に識別します。 サブクラスを削除するには、サブクラス プロシージャとこの値を RemoveWindowSubclass 関数に渡します。 この値は、uIdSubclass パラメーターのサブクラス プロシージャに渡されます。

[in] dwRefData

種類: DWORD_PTR

データを参照するDWORD_PTR。 この値の意味は、呼び出し元のアプリケーションによって決まります。 この値は、dwRefData パラメーターのサブクラス プロシージャに渡されます。 異なる dwRefData は、ウィンドウ ハンドル、サブクラス プロシージャ、および uIdSubclass の各組み合わせに関連付けられます。

戻り値

種類: BOOL

サブクラス コールバックが正常にインストールされた場合は TRUE。それ以外の場合は FALSE

注釈

サブクラス コールバックは、コールバック アドレスと呼び出し元で定義されたサブクラス ID の組み合わせによって識別されます。 コールバック アドレスと ID のペアがまだインストールされていない場合、この関数はサブクラスをインストールします。 ペアが既にインストールされている場合、この関数は参照データを更新するだけです。

各コールバックは、メッセージをフィルター処理するために呼び出されたときにコールバック関数に渡される参照データの単一の DWORD_PTR を格納できます。 コールバックの参照カウントは実行されません。 SetWindowSubclass を繰り返し呼び出して、参照データ要素の値を変更できます。

警告 サブクラス化ヘルパー関数を使用して、スレッド間でウィンドウをサブクラス化することはできません。
 

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー commctrl.h
Library 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