タイマー以外のイベントが発生すると、OverlappedWindowオブジエクトのEventプロパティに、このオブジェクトが登録されています。イベントオブジェクトは、再利用されません。イベントごとに作成され、破棄されています。
メッセージを識別するコードが入っています。
たとえば、タイマーであれば257です。
パラメーターで、イベントの種類により内容は異なります。
OnCommandイベント、OnContextMenu、OnContextDeleteなどのイベントでは、イベントを発生するきっかけとなったコントロールのID番号が入っています。
OnKeyDownイベントでは、仮想キーコードが入ります。
どのキーが、どのコードを発生させるかは実際たしかめるのが簡単です。
拡張パラメーターです。
OnKeyDownでは、シフトキーとコントロールキーの状態が入ります。
下位2ビットは、???? ??CS のようになってます。
1ビット目でSHIFTの状態、2ビット目でCONTROLの状態を表します。
それ以外のビットは不定です。
イベントが発生した時点でのマウスカーソルのクライエント座標が入ります。
イベントが発生した時点でのマウスカーソルのピクセル単位のクライエント座標が入ります。
イベントが発生した時点での時刻が入ります。
下記はイベントの種類を判断するメソッドです。
メッセージが該当すればTrueが返ります。
もし、イベントハンドラをつかわずDoEventとIF等の判定でイベントを処理しようとする場合には、タイマーに気をつけなければなりません。
DoEventがイベント処理あり、として返してきたとしてもEVENTオブジェクトは以前のイベントコードを示したままです。
すなわち、DoEventが257を返してきた場合はタイマー処理を行い、それ以外の場合にEventオブジェクトを使うようにしてください。