マウスのホイール値の取得

解決


こん  2008-06-03 22:56:38  No: 68474

プロシージャのWM_MOUSEWHEELでではなく
int GetMouseWheel(void);
というようにどこでも呼び出したいのですが何かいい方法はないでしょうか?
ウィンドウハンドルを渡すと送られたメッセージがわかる
BOOL GetMessage(HWND hWnd,UINT msg);
のような関数があれば対処できると思うのですが・・・
よろしくお願いします。


仲澤@失業者  2008-06-03 23:18:21  No: 68475

ありません。が正解です。

 マウスホイールは物理的動作がきっかけで発生し、その物理動作が
完了することによって一連の経過を評価後メッセージが起こされます。
また、ホイールの評価は回転方向は保存されますが、回転角度などは
拾えません。たぶんドライバも内部に持っていないと考えられるので
いかなる方法によっても利用できる情報は取れないと予想できます。

ちなみに何がやりたいのでしょう。目的によっては別の回答も出るかも
しれません。


こん  2008-06-03 23:40:52  No: 68476

3Dモデリングツールもどきを作成中でして
カメラのズームをホイールで行っていました。
今までは自作関数プロシージャのWM_MOUSEWHEELでホイール値を取得して
その値を格納していたのですが
他にInputクラスという入力情報を管理するクラスがあって
そこでホイール値を取得したいと思ったわけです。
WM_MOUSEWHEELで取得した値をそのままInputクラスに渡してもいいのですが
現在のプログラムの構想上、あまり好ましくないように思ったわけです。


仲澤@失業者  2008-06-04 02:19:43  No: 68477

そうなると、クラスの構成自体に問題があるかもしれません。

マウスのナマのデータ、又はその加工データは、それを必要
とする全てのクラスが、その発生したタイミングで、シームレスに
利用できるべきだと考えます。そうなっていればGetCursorPos()等
の権限を越境した関数は使用する必要がまったくなくなります。


こん  2008-06-05 17:11:02  No: 68478

そうですか
わかりました。
ありがとうございました


こん  2008-06-11 04:40:56  No: 68479

チェック入れ忘れていました


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加