Creating Embedded Child Property Sheets
Environment: Windows NT4 SP6, Visual C++ 6 SP3
Having a property sheet inside a property page causes some problems:
The class CChildPropertyPage derived from CPropertyPage solves the above problems. To use a child property sheet you simply use this class instead of CPropertyPage to implement your resource. You add the child pages in the same way as you would add pages to a normal property sheet. See the demo project.
The example project implements the above example. It shows how to use the child property sheet on a full page and limited by a group box. The example is simply created with the following statements:
CPropertySheet dlg("Test");
CChildPropertyPage Page1(IDD_PROPPAGE1);
CChildPropertyPage Page2(IDD_PROPPAGE1,0,0,IDC_GROUP);
CPropertyPage Page11(IDD_PROPPAGE2);
CPropertyPage Page12(IDD_PROPPAGE2);
CPropertyPage Page21(IDD_PROPPAGE3);
CPropertyPage Page22(IDD_PROPPAGE3);
dlg.AddPage(&Page1);
dlg.AddPage(&Page2);
Page1.AddPage(&Page11);
Page1.AddPage(&Page12);
Page2.AddPage(&Page21);
Page2.AddPage(&Page22);
The CChildPropertyPage constructor takes four arguments:
Downloads
Download demo project - 6 KbDownload source - 2 Kb

Comments
Excellent - easily fills a severe gap in MFC
Posted by Legacy on 09/24/2001 12:00amOriginally posted by: heretic108
ReplyINITDIALOG troubles
Posted by Legacy on 04/02/2000 12:00amOriginally posted by: Polstianko DMITRY
I tryed creat my class CMyChildPage from CChildPropertyPage.
I put CViewCtrl inside PropertyPage. All initialization of CViewCtrl I made from CMyChildPage::OnInitDialog(), but CMyChildPage::OnInitDialog() doesnt response :o( . Why ?
ReplyApply button is not working
Posted by Legacy on 03/04/2000 12:00amOriginally posted by: sanjay thakur
If I create my page derived from CPropertyPage and I include it as child propertypage...if i use SetModified(TRUE) in my child page...then it should enable the Apply button and should call Apply function ..which is not happening..
Please farword the solution as soon as possible..
thx in advance..
ReplyGood code, but ... bad design
Posted by Legacy on 02/17/2000 12:00amOriginally posted by: P�l Kristian T�nder
I don't want to be negative, but one should not promote this kind of UI. Having more than one level of property sheets is very confusing for the user, and should be avoided at any cost. An alternative way of doing this is to have a listbox on the left side of the window with the top level sheets as items. Activating one of these present a proerty sheet to the right.
Reply