반응형

다이얼로그 생성 시 Create와 DoModal의 차이


DoModal)

- 대화가 필요한 모달형

- 대화를 마치지 않으면 다음 윈도우로 넘어갈 수 없음. 즉, 모달 실행 시 팝업 윈도우를

  무시하고 다른 윈도우 컨트롤 불가

- 대화상자 객체를 스택에 생성한다.


- 사용법(생성)

CModalDlg dlgModal;

dlgModal.DoModal();


- 사용법(종료)

1) virtual void CModalDlg::OnOk();

2) virtual void CModalDlg::OnCancel();

3) CModalDlg::EndDialog();

// EndDialog()는 OnOk() | OnCancel() 에서 자동 호출하므로

// 자동호출 외에 다른 방법으로 종료 시 사용하도록 한다.


- 다이얼로그 생성(실행) 순서

1) Dlg의 생성자

2) dlgModal.DoModal();

3) Dlg::OnInitDialog();


※ 참고! : 모달 다이얼로그를 띄운 후 모달 다이얼로그에서 부모 다이얼로그의 

            컨트롤 값(조작 제외. 예를들어 스태틱 컨트롤 값 갱신)이 가능한가요??

             ==> 가능합니다. 부모 다이얼로그의 포인터값만 있으면 갱신은 가능합니다.

                    단지 사용자가 부모 다이얼로그의 컨트롤을 직접 사용할 수 없을 뿐...


Create)

- 대화가 필요없는 모달리스형

- 대화를 마치지 않아도 다음 윈도우로 넘어갈 수 있음. 즉,  모달리스 실행 시 팝업 윈도우를

  무시하고 다른 윈도우 컨트롤 가능

- 대화상자 객체를 힙에 생성한다.


- 사용법(생성)

CModalessDlg *pDlg = new CModalessDlg;

pDlg->Create(IDD_MODALESS_DLG);

pDlg->ShowWindow(SW_SHOW);


- 사용법(종료)

pDlg->DestroyWindow();

pDlg = NULL;


- 다이얼로그 생성(실행) 순서

1) Dlg의 생성자

2) pDlg->Create();

3) pDlg::OnInitDialog();



반응형
Posted by tislqhf

블로그 이미지
개인적인 공부자료 정리하는 공간
tislqhf

태그목록

공지사항

Yesterday
Today
Total

달력

 « |  » 2025.2
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함