Dialog in collapsed state
Dialog in expanded state
Sometimes it may be useful to show only the important part in a dialog and have a button usually labeled "More" that expands the dialog when the user clicks on it. Once the dialog is expanded, the "More" button displays "Less" and as soon as the user clicks on the "Less" button, the dialog will shrink to its initial size.
CExpandDialog class performs this for you. All you have to to is add the DialogExpander.cpp file to your project and make some minor changes in your dialog class and template.
Modify the header file of your dialog class like this:
#include "DialogExpander.h" //<<<< add here
class CExpandDialogDlg : public CDialog
CExpandDialog m_ExpandDialog ; //<<<< add here
OnInitDialog function dialog class like this:
m_ExpandDialog.Initialize(this, FALSE, IDC_MOREBUTTON,
With the class wizard, add a handler for the "More" button (e.g.
OnMore()) and modify it like this:
The dialog template must include two special static controls. One that indicates the position of the bottom of the dialog when it is in the collapsed state (1 on the legend below) and one that contains the string that should appear on the "More/Less" button when the dialog is in the expanded state (2 on the legend below). These two controls will not be shown because the
CExpandDialog class will hide them automatically.