これを使うには
- 「プロジェクト」の「プロパティ」を開いて「リンカー」の入力にある「追加の依存ファイル」で「comctl32.lib」を入力します。
- ソースファイルもしくはヘッダーファイルで「#include 」を入力すれば使えるようになります。
- WNDCLASS 構造体またはWNDCLASSEX構造体の「lpfnWndProc」に「DefWindowProc」を渡します。
- ウィンドウが作成された直後にSetWindowSubclass関数を呼び出す
BOOL SetWindowSubclass(
_In_ HWND hWnd, //サブクラス化するウィンドウハンドル
_In_ SUBCLASSPROC pfnSubclass, //サブクラス化するコールバック関数
_In_ UINT_PTR uIdSubclass, //サブクラスのID
_In_ DWORD_PTR dwRefData //サブクラスのIDと異なる値(通常は0を指定すればOK)
);
//
// subclassing stuff
//
typedef LRESULT (CALLBACK *SUBCLASSPROC)(HWND hWnd, UINT uMsg, WPARAM wParam,
LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData);
以下がメインウィンドウをサブクラス化したときのコールバック関数になります。WinSubclassProcをSetWindowSubclassの第2引数に渡します。