2017. 3. 31. 11:23 MFC/기초
MFC) 다이얼로그(Dialog) Create VS DoModal
다이얼로그 생성 시 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();
'MFC > 기초' 카테고리의 다른 글
MFC) MFC 라이브러리 함수 정리 (0) | 2017.11.08 |
---|---|
MFC) 여러 컨트롤(버튼 등) 이벤트 동시 처리 (0) | 2017.02.28 |
MFC) ToolBar(툴바) 기본 사용법 및 팁 (0) | 2017.02.27 |
MFC) Work Thread / UI(Usesr Interface) Thread 사용법 총 정리 (0) | 2017.02.17 |
MFC) CString/문자열 함수(탐색 및 추출)/Find, ReverseFind, Left, Right, Mid (0) | 2017.02.09 |