Well, you could call a EndDialog(#); on the dialog box when the user clicks next - so, you could return a different value for each button (ie back, next, etc). What you pass as the parameter is what is returned by DoModal(); For example,
CMyDlg d;
int nSel = d.DoModal();
(when EndDialog(1) is called from the CMyDlg class or whatever)
switch(nSel)
{
case -1: //cancel
case 1: //next
case 2: //back
//... whatever
}
Then just display your next dialog and repeat.
bitwise