Variable splitter views

Here is a class that implements an MDI Frame (CMDIChildWnd) which
shows a number of variable views (up to 4 views).

The Class (CBaseVarFrame) is reusable.

It implement four new commands :

ID_SPLITTER_NESSUNO (Just Default View,no splitter)  // status = 0
ID_SPLITTER_UNO ( 2 Views ,Default View on the left pane,1 view in the right pane)  // status = 1
ID_SPLITTER_DUE ( 3 Views,Default View on the left pane,2 views in the right pane)  // status = 2
ID_SPLITTER_TREE (4 Views,Default View on the left pane,3 views in the right pane) // status = 3

To use the class you have two choices:

A) method 1

derive your class

class CMYFrame : public CBaseVarFrame
// use a static array of your runtime views
static    CRuntimeClass* myClass[3] =

// Overrides the method

void CMYFrame::OnConfigViews()
  ConfigViews(myClass,  // array of RuntimeClass of Views
                            3,  // number of max of Views on the right pane
                            0); // initial status (see above)

B) method 2

Use the configurable class CBaseVariableFrame

which allows you to use it directly ,just put

this code in your application methos InitInstance() :

CMultiDocTemplate* pDocTemplate;
  pDocTemplate = new CMultiDocTemplate(
  RUNTIME_CLASS(CBaseVariableFrame), // custom MDI child frame
  RUNTIME_CLASS(CVarSplitView));       // your default views (left pane)

// TO DO : config your frame

In my example I use the second method

BaseVarFrame.cpp BaseVarFrame.h    (base class)
ChildFrm.cpp ChildFrame.h   (configurable base class)

Download Source 58KB

More by Author

Must Read