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

解決


ハルボン  2006-05-02 19:28:10  No: 61639

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

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

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

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

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


keichan  2006-05-02 20:50:46  No: 61640

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


subaru  2006-05-02 23:00:59  No: 61641

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


ハルボン  2006-05-02 23:48:04  No: 61642

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

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


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

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






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