Date Posted 2001.11.11
Last Update 2001.12.2


 

CSubclassWnd クラス


 
Window をサブクラス化する際の基本クラスです。

 

使用法

SubclassWindow メンバ関数を呼び出すだけです。

BOOL SubclassWindow( HWND hWnd )
この関数の成功後、hWnd の Window に送られたメッセージが、デフォルトの Window Procedure ではなく、CSubclassWnd クラスのメンバ関数 SubclassProc に届くようになります。
LRESULT SubclassProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
このメンバ関数をオーバーライドして、新たなメッセージ処理を行ってください。

デフォルトの Window Procedure にメッセージを転送したい場合は、SubclassProc 関数内で CSubclassWnd クラスのメンバ関数 DefWindowProc を呼び出してください。

LRESULT DefWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)


サブクラス化の解除は UnsubclassWindow で行います。

BOOL UnsubclassWindow( )

サブクラス化の解除は、サブクラス化したウィンドウが破棄されるときには必ず行う必要があります。この処理は CSubclassWnd クラスのメンバ関数の DefWindowProc 内にインプリメントされているので、WM_DESTROY を受け取った際の処理は DefWindowProc に任せることをおすすめします。


 

注意点

ひとつの Window を複数の CSubclassWnd クラスのオブジェクトにより重ねてサブクラス化することはできません。


 

Downloads

Download source - 2.6 Kb
 
ホーム ページ