Creating a Rollout Panel
Posted
by MAV MAV
on October 21st, 2002

Environment: VC6, Win95-XP
Introduction
This control works like "Rollout panel" in 3dsmax: When you click on a checkbox, some additional controls are shown. Another click on a checkbox will hide controls. Notice that other controls in a dialog are also moved and the dialog itself is resized. I tried to find something like this on the CodeGuru site, but the only articles I found were about expanding dialogs, which have limited functionality in comparison with this. So I decided to write my own class for this control.
How to Integrate It into Existing Code
- Create a dialog and place controls on it.
- Encircle the controls you want to be dynamically shown or hidden with static box and set their text to an empty string. Also, place a checkbox in the corner of it, as it is shown in the picture.
- Set the proper IDs for the checkbox and static (do not use IDC_STATIC because it will not work!). Let's say you have used ID's IDC_CHTYPE (for checkbox) and IDC_STTYPE (for static box).
- Associate variables with these two controls using ClassWizard. They should be of type CButton.
- Copy the "ExpandingCheck.h" and "ExpandingCheck.cpp" files into your source files directory.
- In your dialog's .h file write:
#include"ExpandingCheck.h"
- Also, in your dialog's .h file you have to find the variables created in Step 4 and make the Checkbox variable of type CExpandingCheck:
- In the constructor of your dialog, write:
- That's all!
//{{AFX_DATA(CExpCheckTestDlg)
enum { IDD = IDD_EXPCHECKTEST_DIALOG };
CExpandingCheck m_chType; //I have changed this line
CButton m_stType;
//}}AFX_DATA
m_chName.SetFrame(&m_stName);
If you have found any bugs or improved the code, feel free to e-mail me.
Downloads
Download demo project - 36KbDownload source - 3Kb

Comments
Check layout - > Tab order
Posted by Legacy on 11/07/2003 12:00amOriginally posted by: Rybets
After I added this to my app (It was already some controls in dialog), I have seen nothing. We spend a lot of time, checking, what is wrong. Finally, we
Replychanged a tab order, to make expanding dilogs to be presented first using "tab order". It is OK now.
How about a button?
Posted by Legacy on 02/27/2003 12:00amOriginally posted by: Breeze
Reply