Win32 API C++プロジェクトでは、タブコントロール(3タブ)とタブコントロールの子である3つのダイアログを持つダイアログがあります。 DialogBoxParamを使ったタブコントロールと、CreateDialogParamを使ってリソースからの子ダイアログをロードしてメインダイアログを読み込みます。メインダイアログに子ダイアログが表示されます。タブをクリックすると正しい子ダイアログが表示/非表示され、正常に動作します。ネストされたダイアログ(WS_EX_CONTROLPARENT)を持つタブコントロールのタブ順序
タブオーダーについて検索したところ、WS_EX_CONTROLPARENT
スタイルがタブコントロールに設定され、タブダイアログが子ダイアログウィンドウに作用することがわかりました。 1つの問題点を除いて、これはうまくいきます:タブコントロール自体にフォーカスがないので、タブコントロールにタブで移動してキーボードで別のタブに変更することはできません。キーボードフォーカスは、子ダイアログ、メインダイアログのボタン、子ダイアログへの戻り、タブコントロール自体では決して停止しないので、タブコントロールをクリックしてタブを変更する必要があります。それは私を夢中にさせている。助言がありますか?
更新:私はWS_EX_CONTROLPARENT
を完全に忘れて、タブコントロールの子ダイアログを兄弟にすることで問題を回避することができました。副作用のみが再描画中にコントロールの点滅が増えているように見えますが、タブの子ダイアログを子どもたちがきれいに見せるようになって以来、まだ答えが好きです。
私のために働く。ダイアログの子をタブコントロールの子にするネットが多すぎると、MSはドキュメント内で明確にしません。私は以来、XPのタブのテーマを有効にして、それは正常に動作します。 – Jay