VisualStudio.C++.C#2015. 12. 12. 21:51


 

개요.

 
MFC CDialog 기반 대화상자를 modeless 로 생성하고 종료하는법 정리.

modeless 든 modal 이든 대화상자 템플릿과 클래스를 만드는 기본적인 사항은 동일하며, 생성/종료방법에 따라서, modal, modeless 라고 불린다.  대화상자 생성시 Create 함수호출로 생성하는것을 modeless 라고 한다. 대화상자 생성시 DoModal함수로 생성하는 것을 Modal 대화상자라고 한다.

Modal,Modeless 대화상자 비교.

 

 Modeless 대화상자.

 Modal 대화상자.

 생성 함수

 Create

  DoModal

 종료 함수

 DestroyWindow 

  EndDialog


본 글의 설명에 사용되는 예제 프로젝트
CyFinAPI (VC++ MFC Regular DLL 프로젝트임) 에 추가된 대화상자 클래스 CDlgMain 을 modeless 방식으로 생성하는 예를 보인다.

CyFinAPI  프로젝트 생성과정 상세보기 -> http://igotit.tistory.com/476
CyFinAPI 프로젝트에 대화상자 클래스 CDlgMain 추가 과정 상세보기 -> http://igotit.tistory.com/480

 


 

 

상세

 
 
1. 대화상자 클래스 CDlgMain 타입 변수 m_DlgMain 선언.
여기서는 DLL 의 기본 클래스인 CCyFinAPIApp 에 선언하기록한다. 
아래- 대화상자 헤더파일 DlgMain.h 을 인클루드 하고 있고, class CCyFinAPIApp의 멤버변수로 선언되고 있다.


2. CDlgMain 의 생성, 종료함수 호출.

본 예에서는 DLL의 외부 노출함수인 test1, test2 에 생성, 종료 함수 호출하고 있다.




정상 작동확인
DLL 의 외부 노출 함수 시험용 프로그램인 CyFinAPI_App1 ( http://igotit.tistory.com/483 ) 에서 Button1 클릭(DLL의 함수 test1 호출) 하면 DLL내부의 대화상자가 modeless 방식으로 생성되고, Button2 클릭(DLL의 함수 test2 호출)하면 대화상자 닫힌다.
그림에서 창제목에 CyFinAPI 있는것.


. VC++. MFC대화상자 Modeless 생성/종료하기. 예: CyFinAPI DLL 내의 CDlgMain 생성/종료.
 


 

 본 글이 포함된 상위 정리 장소.

 

 Visual Studio/VC++/C/C# 활용정리 -> http://igotit.tistory.com/11

 

 


///481.

Posted by 리치굿맨

댓글을 달아 주세요