我有两个对话框,想点击第一个的下一步弹出下一个对话框。如果点击下一个的上一步又回到第一个对话框。两个对话框大小不一,如果不用PropertyPage怎么做?PropertyPage的上一步,下一步具体是怎么做的啊?它的上一个对话框是关闭了,还是隐藏了?我认为应该是隐藏吧?我在第一个对话框的下一步函数中SHOWWINDOW(SW_HIDE);
                         m_dialog2.domodal();
在第二个对话框的上一步按钮的函数中
            CDialog::Oncancel();
            m_prevDialog.ShowWindow(SW_SHOW);
这样做会闪烁(有背景图存在于主窗口中)。
如果
我在第一个对话框的下一步函数中
                         CDialog::Oncancel();
                         m_dialog2.domodal();
在第二个对话框的上一步按钮的函数中
            CDialog::Oncancel();
            m_dialog1.Domodal();
不会闪烁。但这样会不会有什么问题?m_dialog1,m_dialog2应该设为成员变量还是全局变量?如果用PropertyPage应该怎么做?
请讲详细点,有代码更好。分可以再加。谢谢

解决方案 »

  1.   

    他们是同样一个对话框重载CPropertySheet和CPropertyPage
    在CYouSheet中添加两个成员CYouPage1,CYouPage2.。
      

  2.   

    勸你還是用CPropertySheet吧!這個東西不難!
      

  3.   

    CSheet::CSheet():CPropertySheet("管理系统",NULL,0)
    {
    m_jhjid = 0;
    m_ckh = 0;
    m_dkh = 0;
    m_num = 0;
    bTest = false;
    AddPage(&m_page1);
    AddPage(&m_page2);
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    }
    /////////////////////
    initinstance()
    CYouSheetDialog.doModal()
    /*
    pSheet = new CSheet;
    pSheet->Create(NULL,DS_MODALFRAME | WS_POPUP | WS_EX_APPWINDOW | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX);
    m_pMainWnd = pSheet;
    pSheet->SetActivePage(1);
    pSheet->SetActivePage(0);
    pSheet->SetWindowPos(NULL,10,10,780,525,0);
    pSheet->ShowWindow(SW_SHOW);
    */
      

  4.   

    http://www.codeproject.com/property/wizardpropertysheet.asp
      

  5.   

    http://www.codeproject.com/property/wizardpropertysheet.asp
    http://www.codeproject.com/property/resizeable_wizard97.asp
    http://www.codeproject.com/useritems/Conquering_Wizard97.asp
      

  6.   

    CPropertySheet必须两个对话框大小一样啊。
    我的两个对话框是一大一小的。应该不会很难吧?难道不能自己实现吗?
      

  7.   

    Propertysheet应该是可以包含两个大小不同的对话框的,结果是以大的为准.自已实现是可以的.不要使用模式型,用非模式型的.
    第一个对话框的NEXT钮上实现
     if(2nd 对话框存在)
       show 2nd对话框
     else
       createdialog(2nd)
     
     hide 1st对话框第二个依此办理.
      

  8.   

    DoModal()显示,Destroy()关闭。将两个对话框对象的作用域弄大一点。