The point behind this article is to build a base for building a Netscape Prefs like dialog without compromising on the benefits provided by
To implement this dialog:
Add the files present in the source zip file above, to your project.
Add the following lines in some globally available file like stdafx.h:
Add a dialog to your application and add a class for it, say
CPrefDlg. Replace every occurrence of
CEZOptionsDlg in the header file and the source file of the dialog. This dialog takes the place of a property sheet.
Edit the dialog template and add a tree control somewhere on the dialog.
Add the following lines to the
OnInitDialog handler to introduce your tree control to the parent class
Add a property page,
CPage1 say, to your application and replace every instance of
CEZPropertyPage in the header and source files.
Now, as you would do in a regular property sheet, declare a member variable for
CPage1 in the dialog class (
CPrefDlg) created in step 2. Add the following code similar to that of the normal
CPage1::Create should be called before calling
If you want to add a page as a child item, add the title of the parent item as the third parameter. To avoid unexpected behavior, the titles should be unique.
Here is the
class CPrefDlg:public CEZOptionsDlg
Again, to remove a page, the title is to be used. This is the reason why I say the titles should be unique.
Repeat the above step to add more pages.
The demo project should do the rest of the explanation.