My project had very big dialog which needed to be split in to many property pages. Some of the property pages again needed a split. Then I tried to do it using CPropertySheet and CPropertyPage. But I could not find a way to stick CPropertySheet inside another CPropertySheet. My CMutliRowTabView and CTesttabCtrl did the job. I derived CtestTabCtrl from CTabCtrl and used lParam value to store the either a Window or a Tab control. CMutliRowTabView has CTesttabCtrl member and has its own functions to insert a view or a Tab control. With CMutliRowTabView you can add any number of rows, Insert windows by position.
Derive a class from CMutliRowTabView and override OnInitialUpdate() to add pages.
DownloadsDownload demo project - 24 Kb
Download source - 8 Kb