질답란에 있길래 한번 만들어 보았습니다.
다이얼로그를 WS_POPUP으로 사용하다가 WS_CHILD로 ~
스타일 변경은
m_pDlg->ModifyStyle(WS_CHILD, WS_POPUP|WS_BORDER|WS_CAPTION|DS_MODALFRAME);
스타일 변경하기 위해
잠시 SW_HIDE ~~SW_SHOW,
부모윈도우 잡아주기 위해
m_pDlg->SetParent(this);
if(!m_pDlg){
m_pDlg = new CTestDlg;
m_pDlg->Create(CTestDlg::IDD, this);
}
m_pDlg->ShowWindow(SW_HIDE);
CString str; GetDlgItem(IDOK)->GetWindowText(str);
if(str.Compare("OutGoing Dialog")){
GetDlgItem(IDOK)->SetWindowText("OutGoing Dialog");
m_pDlg->ModifyStyle(WS_POPUP|WS_BORDER|WS_CAPTION|DS_MODALFRAME, WS_CHILD);
m_pDlg->ModifyStyleEx(0, WS_EX_DLGMODALFRAME );
m_pDlg->SetParent(this);
}else{
GetDlgItem(IDOK)->SetWindowText("Cominging Dialog");
m_pDlg->ModifyStyle(WS_CHILD, WS_POPUP|WS_BORDER|WS_CAPTION|DS_MODALFRAME);
m_pDlg->ModifyStyleEx(WS_EX_DLGMODALFRAME , 0);
m_pDlg->SetParent(NULL);
}
m_pDlg->SetWindowPos(NULL, 5, 5, 0, 0, SWP_NOSIZE | SWP_SHOWWINDOW)