2010-03-06 3 views
1

나는 대화 상자를 사용하여 구조와 같은 마법사 ...를 만들기 위해 노력하고 있어요 그래서 나는 그것의 대화를 displying box.but 내가 추가 한 ...MFC에서 SW_SHOW를 사용하여 해당 클래스에서 대화 상자를 표시 할 수 없습니까?

CDialog1Dlg* dlg = new CDialog1Dlg; 
m_pMainWnd = dlg; 
dlg->Create(IDD_DIALOG1); 
dlg->ShowWindow(SW_SHOW); 

이 (가) 위 괜찮 았는데 아래로 CDialog1App의 코드를 교체 또 다른 대화 상자 ... 그래서 첫 번째 대화 상자의 경우에는 첫 번째 대화 상자를 숨기고 두 번째 대화 상자를 표시하는 다음으로 사용자가 클릭 ..

// CDialog1 클래스

void CDialog1Dlg::OnBnClickedNext() 
{ 
    // TODO: Add your control notification handler code here 
    CDialog2* dialog2 = new CDialog2(); 
    dialog2->Create(IDD_DIALOG2); 
    dialog2->ShowWindow(SW_SHOW); 
    this->ShowWindow(SW_HIDE); 
} 

위의 코드 Dialog2 클래스에 대한 객체를 만들고 그걸 보여 주려고 시도했습니다. 이제 문제는 두 번 창을 숨기는 것입니다. 어떻게 할 수 있습니까? 여러 가지 유형을 시도했지만 여전히 작동하지 않습니다. .. 제발 PropertySheet 함께 할 제안 ... 그걸로 작동합니다, 나도 알아 ...하지만이 원하는 대화 상자를 사용하여 어떤 이유로 든

답변

2

당신은 기본 부모 창 (NULL을 사용하여 dialog2를 만들고있어) :

dialog2->Create(IDD_DIALOG2); 

하지만 기본 부모는 대화 상자 1 인 것처럼 보입니다. dialog2의 부모 인 dialog1을 숨기므로 dialog2도 숨겨집니다.

메인 앱 대화 상자 (마법사와 별도로 표시되는 경우)의 창 (CWnd)을 찾거나 데스크톱 창을 부모로 사용하십시오. 예를 들어

:

dialog2->Create(IDD_DIALOG2, GetDesktopWindow()); 
+0

내 편집 확인은 ... 나는 그것을 변경 않았다 .. – kiddo

+0

내 편집을 확인 ... – Stefan

관련 문제