나는 내가 만든 두 개의 CDialog 클래스가 있습니다. MainDialog 및 ExtraDialog라고 부르 자. ExtraDialog를 doModal과 MainDialog 내에서 중첩 된 대화 상자로 표시 할 수있게하고 싶습니다.다른 CDialog 내에 중첩 된 CDialog를 표시하려면 어떻게해야합니까?
Button과 doModal을 통해 별도로 가져올 수 있습니다. 그러나, 나는 그것을 MainDialog 안에 배치하는 방법에 대해 고심했다.
CWnd* m_pWndStatic = new CWnd;
m_pWndStatic->Create(_T("Something"), _T("Title"), WS_CHILD | WS_VISIBLE, CRect(x, y, xEnd, yEnd), this, idWnd);
CExtraDialog* dlg = new CExtraDialog;
dlg->Create(IDD_NEW_DIALOG, this); //Or second variable can be m_pWndStatic?
//dlg->SetWindowPos(m_pWndStatic, x, y, xEnd, yEnd, SWP_NOZORDER | SWP_NOACTIVATE);
//dlg->Invalidate();
//dlg->ShowWindow(SW_SHOW);
//m_pWndStatic->ShowWindow(SW_SHOW);
위의 그림에서 나는 내가 시도한 몇 가지 문장을 공유했다. 나는 CWnd를 만들고 CWnd 안에 대화 상자를 넣기를 원했지만 나는 뭔가를 놓친 것처럼 느껴졌고 온라인에서 도움이되는 것을 찾을 수 없었습니다.
편집 : 기본적으로 하나의 CDialog에 여러 CWnds를 넣고 CWnd가 다른 클래스의 다른 기능을 실행하려고합니다. 레고 블록끼리 맞추는 것.
편집 2 : 비슷한 질문이 있습니까? 비슷하게 보이기를 바랄 뿐이지 만 버튼을 원하지 않고 한 번에 두 개를 표시하려고합니다. Embedding dialogs in main dialog and switching them with button click in MFC
은 당신의 내면의'CDialog' 스타일 = 아이가? 그리고 Visible = True? – sergiol
나는이 질문에 게시 한 것 외에 다른 것을하지 않았다. 아마 아닐거야? 만약 내가 dlg-> ShowWindow (SW_WHOW)를하면, 내가 원하는 바가 아닌 별도의 창에 그것을 띄웁니다. 미안, 귀하의 질문을 이해할 수 없다면, 나는 MFC에 상당히 새로운이야 –
단추 처리기 대신 OnInitDialog 함수에서 찾은 다른 질문의 코드를 넣으십시오. 필요한 각 임베드 된 대화 상자마다 반복 될 수 있습니다. –