プロシージャのWM_MOUSEWHEELでではなく
int GetMouseWheel(void);
というようにどこでも呼び出したいのですが何かいい方法はないでしょうか?
ウィンドウハンドルを渡すと送られたメッセージがわかる
BOOL GetMessage(HWND hWnd,UINT msg);
のような関数があれば対処できると思うのですが・・・
よろしくお願いします。
ありません。が正解です。
マウスホイールは物理的動作がきっかけで発生し、その物理動作が
完了することによって一連の経過を評価後メッセージが起こされます。
また、ホイールの評価は回転方向は保存されますが、回転角度などは
拾えません。たぶんドライバも内部に持っていないと考えられるので
いかなる方法によっても利用できる情報は取れないと予想できます。
ちなみに何がやりたいのでしょう。目的によっては別の回答も出るかも
しれません。
3Dモデリングツールもどきを作成中でして
カメラのズームをホイールで行っていました。
今までは自作関数プロシージャのWM_MOUSEWHEELでホイール値を取得して
その値を格納していたのですが
他にInputクラスという入力情報を管理するクラスがあって
そこでホイール値を取得したいと思ったわけです。
WM_MOUSEWHEELで取得した値をそのままInputクラスに渡してもいいのですが
現在のプログラムの構想上、あまり好ましくないように思ったわけです。
そうなると、クラスの構成自体に問題があるかもしれません。
マウスのナマのデータ、又はその加工データは、それを必要
とする全てのクラスが、その発生したタイミングで、シームレスに
利用できるべきだと考えます。そうなっていればGetCursorPos()等
の権限を越境した関数は使用する必要がまったくなくなります。
そうですか
わかりました。
ありがとうございました
チェック入れ忘れていました
ツイート | ![]() |