본문 바로가기

전자 공학/MFC

[MFC 독학하기] 6. HelloMFC 예제 분석하기(2) - CMainFrame, MessageBox

반응형

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

오늘은 지난시간에 이어서 HelloMFC 예제를 마저 분석해보도록 하겠습니다.

 

1. 클래스 선언부 및 정의부

2) CFrameWnd


CFrameWnd는 메인 윈도우의 기능을 제공합니다.

 

(1) Create()

우선 Create함수를 이용하여 윈도우를 생성합니다.

첫번째 인자에 NULL을 전달하게 되면, MFC 내부적으로 등록된 윈도우 클래스가 사용이됩니다.

두번째 인자는 생성되는 윈도우 타이틀바에 표시될 윈도우 이름입니다. 아래 왼쪽 그림에서 보면 타이틀에 HelloMFC가 출력된 것을 볼 수 있습니다.

 

(2) OnPaint()

OnPaint 함수는 WM_PAINT 메시지를 처리하는 역할을 합니다.

msg의 내용이 화면에 띄워진 것을 볼 수 있습니다.

 

(3) OnLButtonDown()

OnLButtonDown 함수는 WM_LBUTTONDOWN 메시지를 처리하는 역할을 합니다.

아래 오른쪽 그림에서 MessageBox 함수의 첫번째 부분이 화면에 띄워지고, 두번째 부분이 타이틀로 그려지는 것을 확인할 수 있습니다.

 

 

알림창을 간단하게 출력하는 경우 우리는 MessageBox라는 함수를 이용합니다.

MessageBox는 다음과 같은 인자를 가집니다.

int MessageBox(
 LPCTSTR lpszText,
 LPCTSTR lpszCaption = NULL,
  UINT nType = MB_OK );

lpszText는 메시지 개체를 받고, lpszCaption은 알림창의 제목을 지정하게 됩니다. 그리고 nType은 동작을 지정합니다.

위의 예제에서 nType의 경우 생략을 했는데, 다음과 같이 변경을 할 수도 있습니다.

 

nType = MB_ICONERROR nType = MB_ICONWARNING

여러가지 아이콘들이 정의되어있고 내용에 맞춰서 사용하시면 됩니다.


대부분의 MFC 프로그램은 CWinApp과 CFrameWnd를 그대로 사용하지 않고 상속 기능을 이용하여 새로운 클래스를 만들고 재정의해서 사용합니다.

 


2. 메시지맵

MFC는 Message Map이라는 방식을 이용해서 윈도우 메시지와 해당 메시지 핸들러를 대응시켜주게 됩니다.

ON_WM_PAINT() 매크로는 WM_PAINT 메시지와 OnPaint() 함수를 연결하고,

ON_WM_LBUTTONDOWN() 매크로는 WM_LBUTTONDOWN 메시지와 OnLButtonDown() 함수를 연결합니다.

 

 

아직 정확하게 아는 부분들이 많지는 않지만 대략적인 느낌을 파악해 가는데는 충분한 것 같습니다.

반응형