GUI : : Framework/: : MFC

Win32 SDK 윈도우 애플리케이션 기본구조

Jay.P Morgan 2023. 11. 11. 23:37

 

 

  1.  GUI를 가진 프로그램의 작동 원리

 

안드로이도 똑.같.다.

 

※ Message Loop

 

1. Event: User가 H/W장치 (Human Input Device)를 구동하면 운영체제가 하나의 Event로 인식함.

 

2. Event를 대기하다가 수신하는 역할까지 OS가 해줌.

 

3. Event에 대응하는 Message로 변환(unsigned int값)

 

4. Message를 수신해야 하는 창에 함수가 있는지 OS가 Call back해주고, 함수를 만들어 등록.

 

5. 함수를 실행하여 메시지 치리.

 

 

  2.  MFC workflow

 

 

 

Call Back 구조로, 흐름은 MFC Framework에 의해 정해져있음.

흐름은 정해져 있으므로 코드를 추가하는 개념

중요한 것은 언제 정보를 처리하냐, 왜 called 되느냐(원인), 어디에 코드를 넣어야 하는가 (간섭x / 용이)

 

 

  1. 가상함수는 모두 called by framework

  2. 메시지 처리기 (Message Handler) : 메시지에 쌍으로 묶인 함수

 

 

 

  3.  윈도우 PC용 Application

 

 

  3.1  SDI (Single Document Interface)

 

4개의 클래스가 고정

 

  1. 프로그램 제어 : CWinApp 클래스

  2. GUI : CFrameWnd + CView

  3. 데이터, 자료구조 : CDocument

 

MVC 디자인 패턴과 유사

 

 

 

AfxWinMain() : 사실상 MFC에서의 메인함수

 

 

  3.2  new CWinApp 클래스의 핵심함수 3가지

 

  1. InitInstance() : 제일 먼저 called

  2. Run() : 이 때부터 Message Loop가 돌기 시작 → 어딘가로 Callback

  3. ExitInstance()

 

 

  3.3  Message Queue

 

한 App Instance에서 M.Q (Message Queue)  → Loop

한 App에 작은 window가 여러 개 있을 수 있음. 메시지가 여러 윈도우를 돌아다니며 라우팅 순서가 있음.

라우팅 순서는 정해져있으나, 어느 window에 코드를 추가하는지는 개발자 역량.