2021.4.15
INASOFT
/トップ/マウスふるふる ダウンロード/WebHelp/ヘルプトップ
動作原理で登場した(マウスふるふるが利用している、ヘルプ中で登場する)主なWindows API解説
mouse_event
マウスの移動や、マウスボタンのクリックなどのマウスイベントを発生させる。
void mouse_event(DWORD dwFlags, DWORD dx, DWORD dy, DWORD dwData, ULONG_PTR dwExtraInfo);
パラメータ
- dwFlags
マウスの移動とマウスボタンのクリックのさまざまな動作を指定する。次のフラグのうち、意味のある組み合わせを指定可能。
MOUSEEVENTF_ABSOLUTE
(0x8000)dx, dyに正規化された絶対座標を指定することを意味する。
このフラグが指定されない場合は、dx, dyは現在位置からの移動量を意味する。MOUSEEVENTF_LEFTDOWN
(0x0002)マウスの左ボタンが押されたことを意味する。 MOUSEEVENTF_LEFTUP
(0x0004)マウスの左ボタンが離されたことを意味する。 MOUSEEVENTF_MIDDLEDOWN
(0x0020)マウスの中央ボタンが押されたことを意味する。(大抵はマウスホイール部分を押し下げる動作) MOUSEEVENTF_MIDDLEUP
(0x0040)マウスの中央ボタンが離されたことを意味する。(大抵はマウスホイール部分を離した動作) MOUSEEVENTF_MOVE
(0x0001)マウスの移動を意味する。 MOUSEEVENTF_RIGHTDOWN
(0x0008)マウスの右ボタンが押されたことを意味する。 MOUSEEVENTF_RIGHTUP
(0x0010)マウスの右ボタンが離されたことを意味する。 MOUSEEVENTF_WHEEL
(0x0800)マウスホイールが回転したことを意味する。回転量はdwDataで指定する。
(Windows NT/2000以降で指定可能)MOUSEEVENTF_XDOWN
(0x0080)Xボタンが押されたことを意味する。何番目のXボタンかは、dwDataに指定する。
(Windows 2000以降で指定可能)MOUSEEVENTF_XUP
(0x0100)Xボタンが離されたことを意味する。何番目のXボタンかは、dwDataに指定する。
(Windows 2000以降で指定可能)MOUSEEVENTF_HWHEEL
(0x1000)マウスホイールを横方向に傾けたことを意味する。傾け量はdwDataで指定する。左方向は負の値、右方向は正の値を指定する。
(Windows 2000以降で指定可能)
- dx
dwFlagsにMOUSEEVENTF_ABSOLUTEを指定した場合はマウスカーソルのx座標(絶対座標)、そうでない場合は、マウスの横方向の移動量をミッキー単位で指定する。左方向は負の値、右方向は正の値を指定する。
- dy
dwFlagsにMOUSEEVENTF_ABSOLUTEを指定した場合はマウスカーソルのy座標(絶対座標)、そうでない場合は、マウスの縦方向の移動量をミッキー単位で指定する。上方向は負の値、下方向は正の値を指定する。
- dwData
dwFlagsにMOUSEEVENTF_WHEELを指定した場合は、マウスホイールの回転量を指定する。前方向は正の値、後ろ方向は負の値を指定する。
dwFlagsにMOUSEEVENTF_HWHEELを指定した場合は、マウスホイールの傾け量を指定する。右方向は正の値、左方向は負の値を指定する。
dwFlagsにMOUSEEVENTF_XDOWNまたはMOUSEEVENTF_XUPを指定した場合は、どのボタンを示すかを、以下の2つのうちどちらかで指定する。
XBUTTON1
(0x0001)1番目のXボタン。たいていはマウスの脇あたりに存在し、ブラウザの「戻る」機能が割り当てられているボタンである。 XBUTTON2
(0x0002)2番目のXボタン。たいていはマウスの脇あたりに存在し、ブラウザの「進む」機能が割り当てられているボタンである。
これら以外の場合は、0を指定する。 - dwExtraInfo
マウスイベントに関連付けられた 32 ビットの追加情報を指定する。アプリケーションは、GetMessageExtraInfo() 関数を呼び出すと、この値を取得できる。
戻り値
なし
解説
dwFlagsにMOUSEEVENTF_MOVEを指定した場合は、dxとdyには相対的な移動量を整数値で指定する。これらは、直前のマウスイベントが発生した後の相対的な移動量を意味する。正の値は右(または下)への移動を示し、負の値は左(または上)への移動を示す。
dwFlagsにMOUSEEVENTF_ABSOLUTEを指定した場合は、dxとdyにはマウス座標の絶対座標(0〜65535)を整数値で指定する。イベントプロシージャは、これらの座標を表示サーフェスにマッピングする。座標(0,0)は表示サーフェスの左上隅にマップされ、(65535,65535)は右下隅にマップされる。
相対的なマウスの移動量は、マウスの速度と加速レベル(=マウスを連続的に比較的大きく移動させた場合、カーソルを通常より大きく移動すること)の設定に従う。ユーザーは、OS標準の「設定」アプリまたは「コントロール パネル」のマウス設定を使用してこれらの値を設定できる。アプリケーションは、SystemParametersInfo() APIを使用してこれらの値を取得・設定できる。
システムは、加速(アクセラレーション)を適用するときに、指定された相対的なマウスの動きに2つのテストを適用する。 x軸またはy軸に沿って指定された距離が最初のマウスのしきい値を超え、かつ、マウスの加速レベルが0でない場合、距離を2倍にする。x軸またはy軸上での指定された距離が、2番目のマウスしきい値よりも大きく、マウスの加速レベルが2の場合、最初のしきい値テストを適用した結果の距離を2倍にする。従って、マウスの動きは最大で4倍まで加速されることがありえる。
加速が適用されると、システムは結果の値を目的のマウス速度でスケーリングする。マウスの速度は1(最も遅い)から20(最も速い)の範囲で指定でき、マウスの移動距離に基づいてポインタが移動する量を算出する。デフォルト値は10である。これは、マウスの動きに何の追加加速も行わないことを意味する。
mouse_event() APIは、アプリケーションでマウスイベントを疑似的に発生させたいときに使用する。
また、マウスの位置やボタンの状態よりも多くの情報をマウス(ハードウェア)から取得したいときも使用される。例えば、タブレットメーカーがペンベースの情報を自社のアプリケーションに渡したい状況を考える。mouse_event() APIを使えば、タブレットハードウェアと直接通信し、追加情報を取得してキューに保存する専用DLLを作成できる。次に、DLLは、dwExtraInfoパラメーターで、キューに入れられた追加情報へのポインタまたはインデックスと共に、標準ボタンとx,y座標情報を使用してmouse_event() APIを呼び出す。アプリケーションが追加情報を必要とする場合、dwExtraInfoに格納されているポインタまたはインデックスを使用してDLLを呼び出し、DLLは追加情報を返すことで、ハードウェアからの追加情報をアプリケーションが得ることができる。
サンプル
マウスふるふるが利用しているWindows API解説へ
目次へ
※このページは、ソフトウェアに付属のヘルプファイルをWeb用に再構築したものです。大部分に自動変換を施しているため、一部は正しく変換しきれずに表示の乱れている箇所があるかもしれませんが、ご容赦下さい。また、本ドキュメントはアーカイブドキュメントであり、内容は、右上の作成日付の時点のものとなっております。一部、内容が古くなっている箇所があるかと思いますが、あらかじめご了承下さい。
※このページへは、自由にリンクしていただいてかまいません。
■このページに関するご意見をお待ちしております → フィードバックページ