タブ コントロールを使用してダイアログを作成しています。各タブには異なるコントロール セットが表示されるはずなので、ページのように動作するようにリソース エディターで子ダイアログ ボックスを作成しました。
これを行うには、この投稿の手順を使用しました。
リソース エディターで、境界線のないダイアログ ボックスを作成し、スタイルを に設定しChild、システム メニューを削除し、フラグControlとControl Parentを に設定しましたtrue。
私の子ダイアログボックスの手順ではWM_INITDIALOG、追加EnableThemeDialgTexture(handleOfmyDialog, ETDT_ENABLETAB);して返すことで処理しましたTRUE。いいえWM_ERASEBKGND、WM_PAINTまたはWM_CTLCOLORDLGオーバーライドされています。
CreateDialogタブコントロールを含むメインダイアログボックスで、関数を使用して「子ダイアログ」を作成し、MoveWindowそれらを適切に配置するために使用しました。
またはのEndDialog「子ダイアログ」を破棄するために使用しませんでしたが、自動的に破棄されると思います。IDCANCELWM_CLOSE
これをすべて行うために、Windows 8.1 で Visual Studio 2013 を使用しました。
Windows 7 と Windows 8.1 では問題ないように見えますが、タブ コントロールの背景色がダイアログ ボックスのデフォルトの背景色と似ているため、私の目がいたずらをしているのかもしれません。この問題は、次の図に示すように、Windows XP で最もよく見られます。

「子ダイアログ」(およびチェックボックス/トラックバー/ラジオボタン/静的コントロールなどの子コントロール)の背景色を透明にする(タブコントロールの背景色と一致させるにはどうすればよいですか?)
ありがとうございました。