A resizable TabControl

A few notes about CXPropertyPage (A class derived from CDialog).

This window class is contained by one CXPropertySheet. The text of item from
CXPropertySheet will have the text for the resource string with the same identifier as the dialog.
The CXPropertyPage has one m_bAutoSize member with the following property: if this is
set, the first child of the property page is resized when the property page is resized. It is
useful when you have in the property sheet one window control. The value of this member can
be changed by operator =.

How to use these

The first is to add all sources files (X*.h, X*.cpp) into your project, and copy from the
demo project the IDR_XTABCTRL accelerator.

Using CXPropertySheet.

Create a few dialogs in the resource designer with the popup style
removed. Add from class wizard a new class for each new dialog. Into the source files
of these dialogs, change the “CDialog” string to “CXPropertyPage” (both header and source).
Now you have for each dialog one class CXPropertyPage. Declare as member one
CXPropertySheet. Call at initializing time the

  Create(TCXS_UP | TCXS_DOWN] | WS_CHILD | WS_VISIBLE, CRect(0,0,100,100), pParentWnd, nID);

function. The next step is adding pages into this class. So, call

  AddPage(new CXPropertyPage1, hIcon, lParam),

where:
   CXPropertyPage1 is the name of one of the dialogs generated by the class wizard,
   hIcon is the icon which you want to be displayed on item,
   lParam is user data.

The last two parameter are optionals. The easiest way to show how all these work, please see OnInitDialog from demo project.

Download demo project – 68 KB

Download source – 12 KB

More by Author

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Must Read