대부분 모달(Modal)은 스택으로 생성을 합니다.
그리고 모달리스(Modeless)는 힙을 사용해서 동적으로 사용을 많이 합니다.
이럴때 모달리스 다이알로그를 종료시키고 다시 실행시켜도 안나타날때가 있습니다.
이건 대부분 힙으로 할당한 모달리스 다이알로그를 해제 안해줘서 그렇습니다.
모달리스 다이알로그의 CWnd::PostNcDestroy()의 가상함수를 만들어서 그 안에서
메모리를 해제 시켜 주면 됩니다.
PostNcDestory() 함수는 윈도우가 소멸된 후 OnNcDestroy함수에 의하여 불려지는 함수입니다.

ps. 모달리스 다이알로그 종료시 메모리 해제 방법은 아래와 같이 해주시면 됩니다.

void CXXXXXXDlg::OnClose() 
{ 
        // TODO: Add your message handler code here and/or call default 
        DestroyWindow(); 
       //CDialog::OnClose(); 
} 

posted by 뚱2