[TIP]Dialog를 안으로 밖으로~~


질답란에 있길래 한번 만들어 보았습니다.

다이얼로그를 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)


답글 남기기

이메일 주소는 공개되지 않습니다.