- 締切済み
Tabコントロールに貼り付けたダイアログ内のフォーカス移動について
Tabコントロールを使ったソフトを製作中です。 各Tab内のダイアログは、CHILDフラグの付いたウインドウをリソースで作っておき、CreateDialog関数で作成し、TCN_SELCHANGEメッセージを拾ってShowWindowでどのダイアログを見せるかを切り替えています。 マウス操作は問題ないのですが、キーボードのタブキーによるフォーカスの移動がうまくできません。子ダイアログ内の各コントロールを移動させたいのですが、どこにフォーカスがあっても、1回タブキーを押すとTabコントロールにフォーカスが移り、それ以降どこにも移動しないという状態です。 何かメッセージをうまく処理していないのでしょうか?解決策があればご教授お願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Oh-Orange
- ベストアンサー率63% (854/1345)
回答No.1
★『WS_TABSTOP』は付いている? ・リソースで作っている CHILD フラグ付きのダイアログに WS_TABSTOP が付いていれば TAB キーで移動できるのでその後にキーボードでもフォーカスを移動できませんか? ・あるいは CHILD フラグ付きのダイアログの最初のコントロールに WS_GROUP が付いてると Tab コントロールから矢印キーだけでの移動は出来ないと思います。 ダイアログの WS_TABSTOP、WS_GROUP スタイルを確認してみて下さい。 ・以上。
お礼
返信どうもです。 ダイアログはVisual Studio 2005のリソースエディタで作っていますが、ダイアログのプロパティにTabStopの項目は存在しないようです。テキストから手動で追加してみましたが、変化はありませんでした。ちなみにWS_GROUPは今のところ使っていません。
補足
自己解決しましたので質問を締め切らせていただきます。「DS_CONTROL」というフラグを付けていなかったのが原因でした。