( ゚Д゚)ノ Delギコ猫のプログラミング相談室part2

このエントリーをはてなブックマークに追加
905デフォルトの名無しさん
>>903
Windows メッセージパッシングの基本原理を知っているかどうかで、
説明がかなり変わるんだが...

SetWindowsHook(Ex) は Windows API で用意されていて、直接ウィンドウプロシージャを
書き換える。VCL/TWindow コントロールでなくても利用可能。

WindowProc は、VCL 側で定義されている、コントロールごとに存在する
ウィンドウプロシージャ。コントロールのソースコードがある場合には
これを書き換えるほうがメンテナンスしやすい。

さらに、メッセージを処理するたびに呼び出される OnMessage が
用意されていて、この構文を使えばイベントと同様にコードが書ける。

「イベントと同様」とは、あるインスタンスでデフォルトとは異なる振る舞いを
させたいときに、継承クラスを作成してバリエーションを作るのではなく、
最初から用意されているイベントに対してコードを追加することで対応する
ことを意味します。

ところがすべての Windows メッセージに対して、Dynamic メソッドを
定義できるため、コントロールのソースがある場合、わざわざ WindowProc を
変更する必要はほとんどない。

ソースがない/書き換えると大事になりそうな基本クラスなどの定義
済み動作を置き換えたいときくらいかな?

一部の重要なウィンドウズメッセージは扱いやすい形に書き換えられ

ちょっと知りつぼみな説明になった。
わからんところがあれば質問!