• 締切済み

Tabコントロールに貼り付けたダイアログ内のフォーカス移動について

Tabコントロールを使ったソフトを製作中です。 各Tab内のダイアログは、CHILDフラグの付いたウインドウをリソースで作っておき、CreateDialog関数で作成し、TCN_SELCHANGEメッセージを拾ってShowWindowでどのダイアログを見せるかを切り替えています。 マウス操作は問題ないのですが、キーボードのタブキーによるフォーカスの移動がうまくできません。子ダイアログ内の各コントロールを移動させたいのですが、どこにフォーカスがあっても、1回タブキーを押すとTabコントロールにフォーカスが移り、それ以降どこにも移動しないという状態です。 何かメッセージをうまく処理していないのでしょうか?解決策があればご教授お願いします。

みんなの回答

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★『WS_TABSTOP』は付いている? ・リソースで作っている CHILD フラグ付きのダイアログに WS_TABSTOP が付いていれば  TAB キーで移動できるのでその後にキーボードでもフォーカスを移動できませんか? ・あるいは CHILD フラグ付きのダイアログの最初のコントロールに WS_GROUP が付いてると  Tab コントロールから矢印キーだけでの移動は出来ないと思います。  ダイアログの WS_TABSTOP、WS_GROUP スタイルを確認してみて下さい。 ・以上。

BearCave
質問者

お礼

返信どうもです。 ダイアログはVisual Studio 2005のリソースエディタで作っていますが、ダイアログのプロパティにTabStopの項目は存在しないようです。テキストから手動で追加してみましたが、変化はありませんでした。ちなみにWS_GROUPは今のところ使っていません。

BearCave
質問者

補足

自己解決しましたので質問を締め切らせていただきます。「DS_CONTROL」というフラグを付けていなかったのが原因でした。

関連するQ&A

専門家に質問してみよう