読者です 読者をやめる 読者になる 読者になる

kondoumh のブログ

- とあるソフトウェアエンジニアのめったに更新されないブログ -

マウスのホイールボタン

Visual Studio Programming

 最近はホイールボタンつきマウスが標準なので、アプリケーションもホイールボタン(中ボタンの押下)をサポートするように作成したいものです。Visual Studio.NETのC++環境では、プロパティのからWM_MBUTTONDOWNとかWM_MBUTTONUPなどのホイールボタン押下のメッセージをハンドリングするイベントハンドラがすぐに作成できます。Visual C++ 6.0のClassWizardでは、これらのメッセージを一覧から選べません。そこで手動でイベントハンドラを作成する必要があります。手順は次のとおり

①CWnd派生クラスに追加したいイベントハンドラを記述(メンバ関数の追加)
 例) afx_msg void OnMButtonDown(UINT nFlags, CPoint point);

②CWnd派生クラス定義ファイルの BEGIN_MESSAGE_MAP 〜 END_MESSAGE_MAP() セクションにメッセージマップを追加
 例)ON_WM_MBUTTONDOWN() など

 これで、Visual Studio.NETと同様、中ボタンのイベント処理を書くことができます。Visual Studio 6.0 のサービスパックを適用していないMFC環境では、うまく動かないかもしれません。
 ちなみに、ホイールの回転イベントハンドラはClassWizardでも作成可能です。

 マウスの中ボタンの機能はThinkpadのTrackPointでは、真ん中の青ボタンに割り当てられています(スペースセーバーⅡでも同様)。ホイールの機能はないので、マウスの中ボタンクリックの機能があるという感じです。私の場合は3つのボタンを右手親指で押し分けるのでよく間違えます。