본문 바로가기
프로그래밍/C, C++

MFC - 모달(Modal), 모덜리스(Modeless) 다이얼로그(CDailog)의 생성 및 소멸 방법 from MSDN

by 꾸션 2015. 1. 30.

MSDN에서 권고하고 있는 Modal, Modeless 다이얼로그(Dialog)의 생성 소멸하는 방법에 대해 간략히 정리 해 보겠습니다.

참고 사이트: https://msdn.microsoft.com/ko-kr/library/132s802t(v=vs.120).aspx

 

CDialog 클래스

CDialog 클래스 아티클 06/10/2015 읽는 데 9분 걸림 이 문서의 내용 --> 화면에 대화 상자를 표시 하는 데 사용 되는 기본 클래스입니다. class CDialog : public CWnd Members Public 생성자 Public 메서드 CDialog::Crea

docs.microsoft.com

 

모달(Modal) 다이얼로그

생성 방법

DoModal()함수를 호출합니다.

 

소멸 방법

OK, Cancel버튼 클릭 혹은 EndDialog()함수 호출합니다.

 

모덜리스(Modeless) 다이얼로그

생성 방법

일반적으로 new로 생성 후 Create()함수를 호출합니다.

 

소멸 방법

DestroyWindow()함수 호출합니다.

 

모덜리스(Modeless) 다이얼로그 주의 사항

CDialog::OnCancel()과 EndDialog()함수를 절대 사용하지 마세요.

항상 OnCancel()함수를 오버라이딩하고 함수내에서 DestroyWindow()함수를 호출하도록 하세요.

일반적으로 Modeless다이얼로그는 new 생성하므로 PostNcDestroy()함수를 오버라이딩하고 함수내에서 delete this구문을 넣어주므로써 자동으로 소멸되도록 구현해주면 좋습니다. 또한, new 생성한 멤버 변수도 PostNcDestroy()함수내에서 delete해주면 좋습니다.

 

반응형

댓글