MFC初心者です。よろしくお願いします。
MSVC6.0にて、MFC AppWizard(exe)を使用し、分割ビューを持つアプリケーションを作成しました。
それぞれのビュー上にマウス(カーソル)が来ている場合に、マウスのホイール
の回転の処理をしたいのですが、マウスの位置に関係無く、アクティブのビューが処理されます。
CMainFrameで処理をすれば良いのかと思いましたが、CMainFrameのnMouseWheel
に処理が飛んで来ません。
どうすれば良いか教えて頂ければ幸いです。
よろしくお願いします。
最近はずす事が多くてなんですが...
アクティブビューしか処理しないのはそういう仕様のようなので、
各ビューのOnMouseMoveで SetFocus()で自分をアクティブにしたら
どうでしょうか。
やはり、そういう仕様ですか。
InternetExploerとかでも、マウスの存在する位置のビューでMouseWheelされる
ようですが、どういった処理をしてるんでしょうね?
アクティブを変更せずにマウスのホイールの回転をキャッチする方法を探して
います。なんとか、アクティブを変更せずに処理する方法は無いでしょうか?
どなたかお知恵をお貸し下さい。
>アクティブビューしか処理しないのはそういう仕様のようなので、
これはCMainFrameにOnCmdMsgを追加して、CFrameWnd::OnCmdMsgの中を見れば
わかります。
ここをいじるとすべてのメッセージに影響するので、変な動作が生まれるかも
しれないです。
マウスホイールをキャッチしたビューで座標を確認して、該当ビューに独自の
メッセージを投げて、そこで処理するという方法もあります。
ツイート | ![]() |