mouse_event関数 (winuser.h)
mouse_event 関数は、マウスの動きとボタンのクリックを合成します。
構文
void mouse_event(
[in] DWORD dwFlags,
[in] DWORD dx,
[in] DWORD dy,
[in] DWORD dwData,
[in] ULONG_PTR dwExtraInfo
);
パラメーター
[in] dwFlags
型: DWORD
マウスの動きとボタンのクリックのさまざまな側面を制御します。 このパラメーターには、次の値の特定の組み合わせを指定できます。
マウス ボタンの状態を指定する値は、進行中の状態ではなく、状態の変化を示すように設定されます。 たとえば、マウスの左ボタンを押したままにすると、左ボタンが最初に押されたときに MOUSEEVENTF_LEFTDOWN が設定されますが、後続のモーションには設定されません。 同様に、 MOUSEEVENTF_LEFTUP はボタンが最初に離されたときにのみ設定されます。
dwFlags パラメーターにMOUSEEVENTF_WHEELとMOUSEEVENTF_XDOWNまたはMOUSEEVENTF_XUPの両方を同時に指定することはできません。両方とも dwData フィールドを使用する必要があるためです。
[in] dx
型: DWORD
MOUSEEVENTF_ABSOLUTEの設定に応じて、x 軸に沿ったマウスの絶対位置、または最後のマウス イベントが生成 されてからの動きの量。 絶対データは、マウスの実際の x 座標として指定されます。移動したミッキーの数として相対データが指定されます。 ミッキーとは、マウスが移動したことを報告するためにマウスが移動する必要がある量です。
[in] dy
型: DWORD
MOUSEEVENTF_ABSOLUTEの設定に応じて、y 軸に沿ったマウスの絶対位置、または最後のマウス イベントが生成 されてからの動きの量。 絶対データは、マウスの実際の y 座標として指定されます。移動したミッキーの数として相対データが指定されます。
[in] dwData
型: DWORD
dwFlags にMOUSEEVENTF_WHEELが含まれている場合、dwData はホイールの移動量を指定します。 正の値は、ホイールがユーザーより前方に回転したことを示します。負の値は、ユーザーに向かってホイールが後方に回転したことを示します。 1 つのホイール クリックは 、WHEEL_DELTA (120) として定義されます。
dwFlags にMOUSEEVENTF_HWHEELが含まれている場合、dwData はホイールの移動量を指定します。 正の値は、ホイールが右に傾いていたことを示します。負の値は、ホイールが左に傾いていたことを示します。
dwFlags にMOUSEEVENTF_XDOWNまたはMOUSEEVENTF_XUPが含まれている場合、dwData は、押されたボタンまたは解放された X ボタンを指定します。 この値は、次のフラグの任意の組み合わせにすることができます。
dwFlags がMOUSEEVENTF_WHEEL、MOUSEEVENTF_XDOWN、またはMOUSEEVENTF_XUPでない場合、dwData は 0 にする必要があります。
値 | 説明 |
---|---|
|
最初の X ボタンが押されたか離された場合に設定します。 |
|
2 つ目の X ボタンが押されたか離された場合に設定します。 |
[in] dwExtraInfo
種類: ULONG_PTR
マウス イベントに関連付けられた追加の値。 アプリケーションは GetMessageExtraInfo を 呼び出して、この追加情報を取得します。
戻り値
なし
解説
設定中の MOUSEEVENTF_MOVE によって示されるマウスが移動した場合、 dx と dy はそのモーションに関する情報を保持します。 情報は、絶対整数値または相対整数値として指定されます。
MOUSEEVENTF_ABSOLUTE値を指定した場合、dx と dy には、0 ~ 65,535 の正規化された絶対座標が含まれます。 イベント プロシージャは、これらの座標を表示サーフェイスにマップします。 座標 (0,0) は表示面の左上隅にマップされ、(65535,65535) は右下隅にマップされます。
MOUSEEVENTF_ABSOLUTE値が指定されていない場合、dx と dy は、最後のマウス イベントが生成されたとき (最後に報告された位置) からの相対モーションを指定します。 正の値は、マウスが右 (または下) に移動した場合を意味します。負の値は、マウスが左 (または上) に移動した場合を意味します。
相対的なマウスの動きは、マウスの速度と加速度レベルの設定の対象となります。 エンド ユーザーは、コントロール パネルの Mouse アプリケーションを使用してこれらの値を設定します。 アプリケーションは 、SystemParametersInfo 関数を使用してこれらの値を取得して設定します。
システムは、加速度を適用するときに、指定された相対マウスモーションに 2 つのテストを適用します。 x 軸または y 軸に沿って指定された距離が最初のマウスしきい値より大きく、マウスの加速度レベルが 0 でない場合、オペレーティング システムは距離を 2 倍にします。 x 軸または y 軸に沿って指定された距離が 2 番目のマウスしきい値より大きく、マウスの加速度レベルが 2 に等しい場合、オペレーティング システムは最初のしきい値テストを適用した結果の距離を 2 倍にします。 したがって、オペレーティング システムでは、x 軸または y 軸に沿って相対的に指定されたマウスの動きを最大 4 倍に乗算できます。
アクセラレーションが適用されると、システムは結果の値を目的のマウス速度でスケーリングします。 マウスの速度は、1 (最も遅い) から 20 (最速) の範囲で指定でき、マウスが移動する距離に基づいてポインターの移動量を表します。 既定値は 10 で、マウスの動きに追加の変更はありません。
mouse_event関数は、必要なアプリケーションによってマウス イベントを合成するために使用されます。 また、マウスの位置やボタンの状態よりも多くの情報を取得する必要があるアプリケーションでも使用されます。 たとえば、タブレットの製造元がペンベースの情報を独自のアプリケーションに渡す場合、タブレット ハードウェアに直接通信し、追加情報を取得してキューに保存する DLL を記述できます。 その後、DLL は、標準ボタンと x/y 位置データと共に dwExtraInfo パラメーターで、キューに置かれた追加情報へのポインターまたはインデックスを使用して、mouse_eventを呼び出します。 アプリケーションが追加情報を必要とする場合は、 dwExtraInfo に格納されているポインターまたはインデックスを使用して DLL を呼び出し、DLL は追加情報を返します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winuser.h (Windows.h を含む) |
Library | User32.lib |
[DLL] | User32.dll |
関連項目
概念
その他のリソース
リファレンス