본문 바로가기

전자 공학/MFC

[MFC 독학하기] 13. MFC 응용 프로그램 만들기(1)

반응형

안녕하세요. 취업한 공대누나입니다.

오늘은 지난 시간에 공부했던 것들을 바탕으로 간단한 MFC 응용프로그램 만들기를 해보도록 하겠습니다.

내용이 많아서 총 두 번으로 나누어 포스팅을 진행할 예정입니다.

오늘은 프로그램을 만들어보고 코드 리뷰를 조금 한 다음에 다음 시간에 본격적인 코드 리뷰를 하도록 하겠습니다.

하나하나 캡쳐해가며 할 예정이니 천천히 따라와주세요.


1. MFC 응용 프로그램 만들기

 

1) [새 프로젝트 만들기] 에서 [MFC 앱]을 선택하나 후 다음 버튼을 클릭합니다.

2) 프로젝트 이름을 적절하게 만들어주고 만들기 버튼을 클릭합니다. (저는 프로젝트 이름을 GdnnProject로 했습니다.)

3) [애플리케이션 종류]를 단일 문서로 설정한 후 문서/뷰 아키텍쳐 지원의 체크박스를 해제해준 후 다음 버튼을 클릭합니다.

4) 문서 템플릿 속성에서는 아무것도 바꾸지 않고 다음 버튼을 클릭합니다.

 

5) 사용자 인터페이스 기능에서는 초기 표시 상태줄 박스만 해제한 후 다음 버튼을 클릭합니다.

6) 고급 기능 옵션은 아래와 같이 모두 해제한 후 다음 버튼을 클릭합니다.

7) 마침 버튼을 클릭해줍니다.

8) 솔루션 탐색기의 소스 파일의 ChildView.cpp를 더블클릭하여 해당 소스창을 띠웁니다.

9) void CChildView :: OnPaint()에 아래와 같이 소스 코드를 추가하고 컴파일을 진행합니다.

10) 오른쪽 그림과 같은 창이 나타나는 것을 확인할 수 있습니다.

 

여기까지 기본적인 프로그램을 만드는 과정을 살펴보았습니다.

이후에는 소스 코드 분석을 한 번 해보도록 하겠습니다.


2. 소스 코드 분석(1)

 

위와 같이 진행하였을 때 클레스는 크게 3가지로 구분 할 수 있습니다.

1. 응용 프로그램 클래스(CGdnnProjectApp)

2. 프레임 윈도우 클래스(CMainFrame)

3. 뷰 클래스(CChildView)

 

1) 솔루션 탐색기 - 헤더 파일의 GdnnProject.h 파일을 클릭하여 오른쪽 그림과 같은 소스 코드를 확인할 수 있습니다.

2) 우리가 만든 응용 프로그램 클래스는 CWinApp 클래스를 상속받고 있습니다.

2) InitInstance() 함수와 ExitInstance() 함수는 각각 응용프로그램의 시작과 종료시 자동으로 호출되는 함수입니다.

3) OnAppAbout() 함수는 프로그램 실행시 [도움말] - [GdnnProject 정보] 메뉴를 선택하면 자동으로 호출되는 메시지 핸들러 입니다. 

4) afx_msg는 내부에서 공백 처리되기 때문에 특별한 의미가 없습니다. 개발자가 핸들러인지 쉽게 구분할 수 있게 도와줍니다.

5) DECLARE_MESSAGE_MAP()은 어떤 클래스에 메시지 핸들러가 1개 이상 존재하면 이 매크로가 클래스 선언부에 있어야 합니다. 


사실 공부하기 전에는 저런 도움말, 파일 메뉴등등을 개발자들이 직접 다 일일이 해줘야 하는 줄 알고 있었습니다.

하지만 자동으로 이렇게 다 완성이 된다니 간단한 프로그램은 직접 개발하는 것이 크게 어렵지 않겠다라는 것에 점점 희망차집니다.

반응형