back,next and cancel

       I am trying to create a program that takes steps. How can I, when the user clicks the "Next >" button it opens another dialog and closes the one just used? And
when the user clicks the "Back >" button it opens previous dialog and closes the one just used? And cancel
would close all dialogs?
uma99Asked:
Who is Participating?
 
ShielsyConnect With a Mentor Commented:
Create a base class (CWizardBaseDlg) for your dialogs (each page in wizard), which has a extra function called getButtonPressed(). This lets me know after the user has closed the dialog the next step to be taken. See then code below. Hope this helps.
Thanks,
Andy
     CWizardBaseDlg *paDlgs[3];

     paDlgs[0] =  new CWizard1Dlg();
     paDlgs[1] =  new CWizard2Dlg();
     paDlgs[2] =  new CWizard3Dlg();

     int iIndex = 0;
     int iRet = 0;

     while (true)
     {
          paDlgs[iIndex]->DoModal();

          iRet = paDlgs[iIndex]->getButtonPressed();
          if (iRet == CWizardBaseDlg::WIZ_BUTTON_CANCEL)
               break;

          else if (iRet == CWizardBaseDlg::WIZ_BUTTON_BACK)
          {
               iIndex--;
          }
          else if (iRet == CWizardBaseDlg::WIZ_BUTTON_OK)
          {
               iIndex++;
               if (iIndex > 2)
                    break;
          }
     }
     
     delete paDlgs[0];
     delete paDlgs[1];
     delete paDlgs[2];

0
 
DanRollinsCommented:
What you want is called a "Wizard."  MFC supports this a a special case of what is called a CPropertySheet.  Real all about it:

http://msdn.microsoft.com/library/en-us/vcmfc98/html/_mfc_cpropertysheet.asp
and
http://msdn.microsoft.com/library/en-us/vccore98/HTML/_core_property_sheets.asp

In particular, you will need to call SetWizardMode() before calling DoModal();

-- Dan

0
 
uma99Author Commented:
Hi Shielsey
I looked at you answer it is fine if i am using just  3 or 4 dialogs but my apllication has 10 dialogs. You can view my apllication to be somewhat similar to those dialogs when ur installing an application.First of it has a splash screen then it asks the user to select options and later it stores the opetions in a drive an d somethinglike  that.'
Thank you if can suggest a remedy for this case.
but anyway i will try to use the one proposed by you.i am not sure of using base calss .so i will try to  use it thank you.
uma
0
Cloud Class® Course: Amazon Web Services - Basic

Are you thinking about creating an Amazon Web Services account for your business? Not sure where to start? In this course you’ll get an overview of the history of AWS and take a tour of their user interface.

 
DanRollinsCommented:
You should use a Wizard-style PropertySheet.  It is designed to do *exactly* what you want to do.  Did you read my post?  Do you need additional details?

-- Dan
0
 
uma99Author Commented:
Dan,
can youplease give me those aditonal details  . iam a new bie i do n ot know anything about property sheet and also i wnat to ask how to close all dialogs when you clickk on X
button.'
thaank you
0
 
DanRollinsCommented:
It really is quite simple.  Please read:

  http://msdn.microsoft.com/library/en-us/vccore98/HTML/_core_property_sheets.asp

which explains it in detail and provides examples.  It boils down to...

CDlgPgWelcome pgWelcome; // a dlg box, but derived from CPropertyPage
CDlgPgStep1   pgStep1;  // also
CDlgPgStep2   pgStep2;  // also

CPropertySheet cSheet("ABC Install Wizard");

cSheet.AddPage( &pgWelcome );
cSheet.AddPage( &pgStep1 );
cSheet.AddPage( &pgStep2 );
cSheet.SetWizardMode();

int nRet= cSheet.DoModal();
if (nRet== IDOK ) {
   the user did not cancel from the wizard
   ...etc...
}

This is a 50-point question that has already been locked, so I expect you to do a bit of research on your own.

-- Dan
0
 
uma99Author Commented:
Thank you Dan and Shielsy
0
 
DanRollinsCommented:
The pleasure is all mine.  I guess.

-- Dan
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.