본문 바로가기

프로그래밍/MFC

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

반응형

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

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


모달(Modal) 다이얼로그


생성 방법

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


소멸 방법

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

  

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


생성 방법

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

 

소멸 방법

DestroyWindow()함수 호출합니다.

 

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

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

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

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

반응형