マウスの入力を検出



 標準的なマウスの処理を説明します。
 マウスの処理は CWnd クラスがサポートしています。また、ClassWizardに登録されて
いますので簡単にイベントメッセージを設定できます。

【マウス処理用メッセージ】
マウスでクリックすると発行される基本的なメッセージを示します。

メッセージ関数操作
WM_LBUTTONDOWNOnLButtonDown左クリック時
WM_LBUTTONUPOnLButtonUp左クリックしてボタンを離した時
WM_LBUTTONDBLCLKOnLButtonDblClk左ダブルクリック
WM_RBUTTONDOWNOnRButtonDown右クリック
WM_RBUTTONUPOnRButtonUp右クリックしてボタンを離した時
WM_RBUTTONDBLCLKOnRButtonDblClk右ダブルクリック
WM_MOUSEMOVEOnMouseMoveマウスをドラッグ
【使用例】 上記メッセージ関数の引数はすべて同様のものです。 では、OnLButtonDownを例にとって説明します。 [書式] void xxx::OnLButtonDown(UNIT nFlags, CPoint point); nFlags 押されたキー point マウスのポイント位置(x,y) [nFlags:押されたキー] このフラグは、各種ビットにキーが割り振られたいます。 従って、押された各々のキーのビットが立ちますので 同時に複数キーが押された場合も、その検出が可能です。 マウス処理用定数
定数キー
MK_LBUTTON0x0001マウスの左ボタン
MK_RBUTTON0x0002マウスの右ボタン
MK_SHIFT0x0004「Shift」キー
MK_CONTROL0x0008「Ctrl」キー
MK_MBUTTON0x0010マウスの中央ボタン
[point:マウスのポイント位置] CPoint pointによりマウスのクリックされた位置を取得できます。 (x , y) = (point.x , point.y) 【マウスキャプチャ】 マウスは Windows の共有リソースであるため、処理中のアプリケーション( A )外で クリックした場合の操作を( A )は取得することは出来きずクリックされた外の アプリケーションが処理を受け取ることになります。しかし、このようなケースでの 処理を( A )が取得することを可能としたい場合あります。 たとえば、 ( A )のデータを別のアプリケーションへマウスによりドラッグドロップする などの時に、この処置が必要となります。 これを実現する手続きを「マウスキャプチャ」といいます。 「解説」 マウスカーソルの移動は、Windowsシステムが監視しています。 通常は、マウスのイベントが発生されるとマウスカーソルのある アプリケーションに渡されます。 しかし、マウスキャプチャの設定がされているアプリケーションが 存在する場合は、設定されたアプリケーションにメッセージが渡される。 (注意)ただし、この設定は複数のアプリケーションにすることは出来ません。 [マウスキャプチャ用の関数] CWnd::SetCapture(); この関数実行後、マウスカーソルの位置に関わらず実行された アプリケーションにメッセージが送られます。 BOOL ReleaseCapture(); 他のウィンドウがマウスメッセージを受け取れるようにする。 (この関数は、API関数です。)