카테고리 없음

MFC(Microsoft Foundation Class Library) 시작하기

Sein_ 2025. 10. 27. 08:22
728x90

MFC

- 윈도우 프로그램을 개발하는 방식 중 하나로 정말 오래된 기술이다. (발표일 1992년)

- 윈도우 운영체제가 제공해주는 함수를 이용하는 Windows API 방식(1세대)에서 C++ 클래스로 감싼 객체지향 프레임워크

- 내부적으로는 Windows API를 사용하지만, 클래스로 구성되어 객체지향적인 프로그래밍이 가능하도록 설계되어 있다.

 

위키백과 - 마이크로소프트 파운데이션 클래스 라이브러리

 

⭐ MFC 를 배우는 이유 ⭐

C++의 MFC는 정말 오래된 기술로 더이상 지원이나 사용은 잘 안하고 있다.

그렇다면 아직까지도 배우는 이유가 무엇일까?
장비쪽 회사들 처럼 sw의 중요도를 낮게 생각하는 산업군에서는 아직도 사용하는 곳이 많이 있기 때문이다.
기술들이 정말 많지만, 많은 기술들 중에 현재 나한테 필요한 기술을 선택하려면 이론적으로 많이 알고 있어야 한다.
또한, 현재 사람들이 많이 사용하는 기술이 무엇인지 알고 있는것도 필요하다.

 

MFC 프로젝트 생성

추가 도구 및 기능 설치 > 개별 구성 요소 > 3개 항목 설치

 

MFC 도구상자

1. 리소스 뷰 추가

보기 > 다른 창 > 리소스 뷰 혹은 Ctrl + Shift + E

2. 작업 뷰 표시

IDD_프로젝트명_DIALOG 접근

3. 컨트롤러 표시

좌측 도구 모음 > 도구 상자

4. 도구 다루기

이후 각각의 도구들을 드래그 앤 드롭하여 다루면 된다.

 

MFC 컨트롤

MFC에서는 버튼이나 콤보 박스, 리스트 박스와 에디터 박스 등의 컨트롤들도 MFC 클래스로 구성되어 있어 

객체 생성 후 사용하면 쉽게 사용할 수 있다.

 

버튼 생성 및 다루기

View 윈도우에서 WM_CREATE 메시지를 받은 후 이를 처리하는 메시지 핸들러 함수인 OnCreate() 함수에서 버튼 컨트롤을 생성하면 된다.

  • HelloMFCView.h 파일 수정 : CButton 객체 생성

  • HelloMFCView.cpp 파일 수정 : OnCreate 메소드에 CButton 객체를 이용하여 버튼 생성

MFC 주요 컨트롤과 쓰임새

구분  컨트롤  이름 / 쓰임새  관련 클래스
입력 컨트롤 Edit Control (편집 상자) 텍스트 입력창. GetDlgItemText(), SetDlgItemText()로 값 입출력 CEdit
Combo Box (콤보 상자) 드롭다운 선택 목록. 항목 추가/선택 가능 CComboBox
List Box (리스트 상자) 여러 항목을 리스트 형태로 표시 CListBox
Spin Control (스핀 컨트롤) 숫자 값 증가/감소 버튼 CSpinButtonCtrl
버튼류 Button (버튼) 명령 실행 (예: 확인, 취소) CButton
Check Box (체크박스) 다중 선택 가능 (True/False) CButton
Radio Button (라디오 버튼) 여러 중 하나만 선택 가능 CButton
출력 컨트롤 Static Text (정적 텍스트) 안내 문구, 제목 표시용 (수정 불가) CStatic
Group Box (그룹 상자) 관련 컨트롤들을 시각적으로 묶을 때 사용 CButton (BS_GROUP 스타일)
목록/표 컨트롤 List Control (리스트 컨트롤) 표 형태의 데이터 표시 (아이콘, 세부보기 등 지원) CListCtrl
Tree Control (트리 컨트롤) 계층적 데이터 구조 표시 (예: 폴더 구조) CTreeCtrl
Tab Control (탭 컨트롤) 여러 페이지로 UI 구성 CTabCtrl
고급 입력 컨트롤 Date Time Picker 날짜/시간 선택용 컨트롤 CDateTimeCtrl
Slider Control (슬라이더) 값의 범위를 슬라이드로 조정 CSliderCtrl
Progress Control (진행 바) 작업 진행률 표시 CProgressCtrl
기타 컨트롤 Picture Control (픽처 컨트롤) 이미지나 비트맵 표시용 CStatic
Hot Key Control 단축키 지정 CHotKeyCtrl
IP Address Control IP 주소 입력용 (IPv4 형식) CIPAddressCtrl

 

 

 

https://blog.naver.com/tipsware/221307415937

 

김성엽의 MFC 이야기

여기에 링크된 글 목록은 MFC(Microsoft Foundation classes)를 사용하여 Windows 응용 프로그램을 ...

blog.naver.com

https://dawitblog.tistory.com/3

 

[C++,MFC]MFC 프로그래밍이란 무엇인가? + 기본 컨트롤러

Java 해야하는데 학교에서는 C++을 가르친다. 그리고 이번에 교수님이 C++과 MFC라이브러리를 이용한 윈도우 프로그램에 대하여 설명해 주셨다. 솔직히 조금 뜬금없었다. MFC가 뭐지? 갑자기 이걸 왜

dawitblog.tistory.com

 

 

 

 

MFC 학습용

https://blog.naver.com/tipsware/221307415937

 

김성엽의 MFC 이야기

여기에 링크된 글 목록은 MFC(Microsoft Foundation classes)를 사용하여 Windows 응용 프로그램을 ...

blog.naver.com