MainFrameでのMouseWheelの取得方法


Owel  2005-04-05 10:39:02  No: 56862

MFC初心者です。よろしくお願いします。
MSVC6.0にて、MFC AppWizard(exe)を使用し、分割ビューを持つアプリケーションを作成しました。
それぞれのビュー上にマウス(カーソル)が来ている場合に、マウスのホイール
の回転の処理をしたいのですが、マウスの位置に関係無く、アクティブのビューが処理されます。
CMainFrameで処理をすれば良いのかと思いましたが、CMainFrameのnMouseWheel
に処理が飛んで来ません。
どうすれば良いか教えて頂ければ幸いです。
よろしくお願いします。


てつや  2005-04-06 01:36:41  No: 56863

最近はずす事が多くてなんですが...

アクティブビューしか処理しないのはそういう仕様のようなので、
各ビューのOnMouseMoveで SetFocus()で自分をアクティブにしたら
どうでしょうか。


Owel  2005-04-06 03:04:42  No: 56864

やはり、そういう仕様ですか。
InternetExploerとかでも、マウスの存在する位置のビューでMouseWheelされる
ようですが、どういった処理をしてるんでしょうね?

アクティブを変更せずにマウスのホイールの回転をキャッチする方法を探して
います。なんとか、アクティブを変更せずに処理する方法は無いでしょうか?
どなたかお知恵をお貸し下さい。


てつや  2005-04-06 03:22:15  No: 56865

>アクティブビューしか処理しないのはそういう仕様のようなので、
これはCMainFrameにOnCmdMsgを追加して、CFrameWnd::OnCmdMsgの中を見れば
わかります。
ここをいじるとすべてのメッセージに影響するので、変な動作が生まれるかも
しれないです。

マウスホイールをキャッチしたビューで座標を確認して、該当ビューに独自の
メッセージを投げて、そこで処理するという方法もあります。


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

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






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