Creating a Rollout Panel



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

  1. Create a dialog and place controls on it.
  2. 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.
  3. 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).
  4. Associate variables with these two controls using ClassWizard. They should be of type CButton.
  5. Copy the "ExpandingCheck.h" and "ExpandingCheck.cpp" files into your source files directory.
  6. In your dialog's .h file write:
    #include"ExpandingCheck.h"
    
  7. 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:
  8.     //{{AFX_DATA(CExpCheckTestDlg)
        enum { IDD = IDD_EXPCHECKTEST_DIALOG };
        CExpandingCheck m_chType;    //I have changed this line
        CButton m_stType;
        //}}AFX_DATA
    
  9. In the constructor of your dialog, write:
  10.     m_chName.SetFrame(&m_stName);
    
  11. That's all!

If you have found any bugs or improved the code, feel free to e-mail me.

Downloads

Download demo project - 36Kb
Download source - 3Kb


Comments

  • Check layout - > Tab order

    Posted by Legacy on 11/07/2003 12:00am

    Originally 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
    changed a tab order, to make expanding dilogs to be presented first using "tab order". It is OK now.

    Reply
  • How about a button?

    Posted by Legacy on 02/27/2003 12:00am

    Originally posted by: Breeze

    how about if I use a button. Can I use CExpandingCheck or CExpandingButton (if there any)?
    

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Live Event Date: August 14, 2014 @ 2:00 p.m. ET / 11:00 a.m. PT Data protection has long been considered "overhead" by many organizations in the past, many chalking it up to an insurance policy or an extended warranty you may never use. The realities of today makes data protection a must-have, as we live in a data-driven society -- the digital assets we create, share, and collaborate with others on must be managed and protected for many purposes. Check out this upcoming eSeminar and join Seagate Cloud …

  • Java developers know that testing code changes can be a huge pain, and waiting for an application to redeploy after a code fix can take an eternity. Wouldn't it be great if you could see your code changes immediately, fine-tune, debug, explore and deploy code without waiting for ages? In this white paper, find out how that's possible with a Java plugin that drastically changes the way you develop, test and run Java applications. Discover the advantages of this plugin, and the changes you can expect to see …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds