現在、ゲームで使用するエフェクトを作成するツールを作成しています。
開発環境は以下のとおりです。
OS:XP
開発ツール:VisualStudio.net C++
スライダコントロール(トラックバー)をダイアログに配置したものを
ウィンドウに子ウィンドウとして貼り付けています。
スライダのつまみを選択し動かしたりすると
スライダにフォーカスがあい(コントロールの周りが点線の四角で囲まれる)
マウスのホイールを回すとスライダのつまみが動いてしまいます。
ホイールの機能を画面の拡大・縮小に使用していますので
スライダにフォーカスが行かないようにしたいのですが
どのような方法があるのでしょうか?
2日連続で質問してすみません。
ただこれが分からないと先に進めませんので
どうぞよろしくお願いいたします。
フォーカスを行かないようにするよりは、スライダにフォーカスされている時でも
画面の拡大・縮小処理を行う方がよろしいかと思います。
もしくは、ホイールを回した時にスライダ以外のコントロールをフォーカスするとか。
スライダコントロールをサブクラス化して
WM_SETFOCUSが来たら元のウインドウにフォーカスを戻すとか。
(タブ移動できないようにWS_TABSTOPをはずしておく)
heichanさん、subaruさん、ありがとうございます。
WM_SETFOCUSが来たらSetFocusで親ウィンドウにフォーカスを
合わせるようにしたところ、期待していた動作をしました。
ほんと助かりました。
ありがとうございました。
ツイート | ![]() |