プロが教える店舗&オフィスのセキュリティ対策術

Tabコントロールを使ったソフトを製作中です。

各Tab内のダイアログは、CHILDフラグの付いたウインドウをリソースで作っておき、CreateDialog関数で作成し、TCN_SELCHANGEメッセージを拾ってShowWindowでどのダイアログを見せるかを切り替えています。

マウス操作は問題ないのですが、キーボードのタブキーによるフォーカスの移動がうまくできません。子ダイアログ内の各コントロールを移動させたいのですが、どこにフォーカスがあっても、1回タブキーを押すとTabコントロールにフォーカスが移り、それ以降どこにも移動しないという状態です。

何かメッセージをうまく処理していないのでしょうか?解決策があればご教授お願いします。

A 回答 (1件)

★『WS_TABSTOP』は付いている?


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

この回答への補足

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

補足日時:2007/09/21 22:07
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/09/21 13:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!