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 値に達するまでデルタ値を累積することもできます。
このメンバ関数をオーバーライドすると、マウス ホイールのスクロール動作を独自に設定できます。
メモ : |
---|
OnMouseWheel は Windows NT 4.0 用のメッセージを処理します。Windows 95/98 または Windows NT 3.51 用のメッセージの処理については、CWnd::OnRegisteredMouseWheel を使用してください。 |
必要条件
ヘッダー : afxwin.h