본문 바로가기
New/MFC 윈도우 프로그래밍

2. MFC 개요 및 아키텍처 (1)

by onenewkong 2024. 12. 2.

2.1 MFC의 개요

MFC (Microsoft Foundation Class)

  • 윈도우 애플리케이션을 생성하기 위해 만들어진 C++ 클래스 라이브러리
  • 개발 시간을 단축시키고 좀 더 이식성이 강한 코드를 작성할 수 있게 함
  • 프로그래밍 하기 어려운 사용자 인터페이스 요소와 ActiveX, OLE, 인터넷 프로그래밍 같은 기술 지원
  • ODBC나 OLE DB를 통해 데이터베이스 프로그래밍과 윈도우 소켓을 통해 네트워크 프로그래밍 같은 애플리케이션을 손쉽게 작성할 수 있게 해줌
  • 프로퍼티 시트, 인쇄 미리보기, 도구바, 리본 사용자 인터페이스 같은 기능을 손쉽게 프로그래밍하게 해줌

2.2 MFC 프로그램의 구조

MFC 프로그램은 크게 SDI와 MDI의 두 가지 형태로 나눌 수 있음

  • SDI (Single Document Interface): 한 개의 도큐먼트 프레임 윈도우만을 사용하는 단일 문서 기반 프로그램
  • MDI (Mutiple Document Interface): 같은 애플리케이션 인스턴스 안에 여러 개의 도큐먼트 프레임 윈도우를 사용할 수 있는 여러 문서 기반 프로그램

1) SDI 애플리케이션의 구조

  • CWinApp 파생 클래스: 애플리케이션 전체를 나타내는 클래스
  • CFrameWnd 파생 클래스: 애플리케이션에서 메뉴와 상태 표시줄, 도구바를 포함한 외부 프레임을 나타내는 클래스
  • CView 파생 클래스: 애플리케이션의 클라이언트 또는 작업 영역을 나타내는 클래스
  • CDocument 파생 클래스: 애플리케이션 내부에서 데이터를 읽고, 저장하는 기능을 가진 클래스

2) MDI 애플리케이션의 구조

  • CWinApp 파생 클래스: 애플리케이션 전체를 나타내는 클래스
  • CMDIFrameWnd 파생 클래스: 애플리케이션에서 메뉴와 상태 표시줄, 도구바를 포함한 외부 프레임을 나타내는 클래스
  • CMDIChildWnd 파생 클래스: 애플리케이션에서 자식 윈도우의 외부 프레임을 나타내는 클래스
  • CView 파생 클래스: 애플리케이션에서 자식 윈도우의 클라이언트 또는 작업 영역을 나타내는 클래스
  • CDocument 파생 클래스: 애플리케이션 내부에서 데이터를 읽고, 저장하는 기능을 가진 클래스

2.3 Visual C++의 시작

1) MFC 애플리케이션 마법사

  • 여러 종류의 애플리케이션을 생성하는 데 사용할 수 있는 강력하고 융통성 있는 개발 도구
  • 단순히 마우스 버튼으로 몇 개의 항목을 설정하면 자동으로 프로젝트를 만들어 주고 자동으로 기존에 있는 클래스를 상속받아 새로운 클래스를 생성해 줌

2) 솔루션 탐색기, 클래스 뷰, 리소스 뷰 및 에디터 사용범

① [솔루션 탐색기]는 파일들에 대한 정보를 보여준다.

② [클래스 뷰]는 클래스에 대한 정보를 보여준다.

③ [리소스 뷰]는 리소스에 대한 정보를 보여준다.

  • [Accelerator]: 가속키 또는 단축키에 대한 정보를 보여줌
  • [Dialog]: 프로그램에서 부수적으로 사용할 대화상자들을 보여줌
  • [Icon]: 프로그램에서 사용되는 아이콘들을 보여줌
  • [Menu]: 프로그램에서 사용할 메뉴에 대한 정보를 보여줌
  • [String Table]: 프로젝트에서 사용되는 문자열에 대한 리스트를 보여줌
  • [Toolbar]: 프로그램에서 사용되는 툴바에 대한 정보를 보여줌