次の方法で共有


CWnd::OnMouseWheel

更新 : 2007 年 11 月

ユーザーがマウス ホイールを回転し、ホイールの次の刻み目に達すると、フレームワークがこのメンバ関数を呼び出します。

afx_msg BOOL OnMouseWheel(
   UINT nFlags,
   short zDelta,
   CPoint pt 
);

パラメータ

  • nFlags
    各種の仮想キーが押されているかどうかを示します。このパラメータには、次の値を組み合わせて指定できます。

    • MK_CONTROL   Ctrl キーが押されている場合に設定します。

    • MK_LBUTTON   マウスの左ボタンが押されている場合に設定します。

    • MK_MBUTTON   マウスの中央ボタンが押されている場合に設定します。

    • MK_RBUTTON   マウスの右ボタンが押されている場合に設定します。

    • MK_SHIFT   Shift キーが押されている場合に設定します。

  • zDelta
    回転距離を指示します。zDelta 値は WHEEL_DELTA (値 120) の倍数または約数にします。ゼロ (0) 未満の値を指定すると、後方に (ユーザーに向かって) 回転します。ゼロより大きい値を指定すると、前方に (ユーザーから遠ざかるように) 回転します。この応答を逆方向にするには、マウス ソフトウェアでホイールの設定を変更します。このパラメータの詳細については、「解説」を参照してください。

  • pt
    カーソルの x 座標と y 座標を指定します。座標は、常に画面の左上隅からの相対位置になります。

戻り値

マウス ホイール スクロールが有効な場合は 0 以外を返します。無効な場合は 0 を返します。

解説

オーバーライドしていない OnMouseWheel は既定の WM_MOUSEWHEEL を呼び出します。このメッセージは Windows によって、フォーカスのあるコントロールまたは子ウィンドウに自動的に転送されます。Win32 の関数 DefWindowProc は、このメッセージを処理するウィンドウに到達するまで、親チェインをさかのぼってメッセージを転送します。

パラメータ zDelta は WHEEL_DELTA (設定値 120) の倍数にします。この値は、単一操作のしきい値になります。単一操作 (刻み目 1 つ分の前方スクロールなど) は、デルタの距離ごとに行われることになります。

刻み目のない自由回転ホイールなど、将来の高解像度ホイールに対応できるように、デルタ値は 120 に設定されています。高解像度ホイール デバイスの場合は、回転あたりの送出メッセージ数は増えても、メッセージあたりの値は小さくなるはずです。このようなデバイスに対応するには、WHEEL_DELTA 値に達するまで入力デルタ値を累積する (所定のデルタ回転に対して同じ応答を得る) か、または頻繁に発生するメッセージに応答して、行数を細かくスクロールします。スクロール単位を選択し、WHEEL_DELTA 値に達するまでデルタ値を累積することもできます。

このメンバ関数をオーバーライドすると、マウス ホイールのスクロール動作を独自に設定できます。

eff58fe7.alert_note(ja-jp,VS.90).gifメモ :

OnMouseWheel は Windows NT 4.0 用のメッセージを処理します。Windows 95/98 または Windows NT 3.51 用のメッセージの処理については、CWnd::OnRegisteredMouseWheel を使用してください。

必要条件

ヘッダー : afxwin.h

参照

参照

CWnd クラス

階層図

CWnd::OnMouseMove

その他の技術情報

CWnd のメンバ