スライダコントロールにフォーカスが行かないようにするには?

解決


ハルボン  2006-05-02 10:28:10  No: 61639  IP: 192.*.*.*

現在、ゲームで使用するエフェクトを作成するツールを作成しています。
開発環境は以下のとおりです。

  OS:XP
  開発ツール:VisualStudio.net  C++


  スライダコントロール(トラックバー)をダイアログに配置したものを
ウィンドウに子ウィンドウとして貼り付けています。

  スライダのつまみを選択し動かしたりすると
スライダにフォーカスがあい(コントロールの周りが点線の四角で囲まれる)
マウスのホイールを回すとスライダのつまみが動いてしまいます。
ホイールの機能を画面の拡大・縮小に使用していますので
スライダにフォーカスが行かないようにしたいのですが
どのような方法があるのでしょうか?


  2日連続で質問してすみません。
ただこれが分からないと先に進めませんので
どうぞよろしくお願いいたします。

編集 削除
keichan  2006-05-02 11:50:46  No: 61640  IP: 192.*.*.*

フォーカスを行かないようにするよりは、スライダにフォーカスされている時でも
画面の拡大・縮小処理を行う方がよろしいかと思います。
もしくは、ホイールを回した時にスライダ以外のコントロールをフォーカスするとか。

編集 削除
subaru  2006-05-02 14:00:59  No: 61641  IP: 192.*.*.*

スライダコントロールをサブクラス化して
WM_SETFOCUSが来たら元のウインドウにフォーカスを戻すとか。
(タブ移動できないようにWS_TABSTOPをはずしておく)

編集 削除
ハルボン  2006-05-02 14:48:04  No: 61642  IP: 192.*.*.*

heichanさん、subaruさん、ありがとうございます。
WM_SETFOCUSが来たらSetFocusで親ウィンドウにフォーカスを
合わせるようにしたところ、期待していた動作をしました。

  ほんと助かりました。
ありがとうございました。

編集 削除