2.1.1 Windows 프로그래밍과 Visual C++
Windows 응용 프로그램은 기본적으로 Windows API를 이용하여 만들 수 있다. 여기서 API는 Application Programming Interface의 약자이고, Windows API란 Windows 응용 프로그램을 만들기 위해 지원되는 함수들을 의미한다. 다양한 Windows API 함수를 사용하여 화면에 그림을 그리거나 마우스 및 키보드 등의 입력 이벤트 처리, 또는 버튼, 에디트 컨트롤 등 다양한 윈도우 컨트롤의 동작을 제어할 수 있다.
Windows API는 기본적으로 C 언어로 작성되어 있기 때문에 Windows 응용 프로그램의 소스 코드는 주로 함수와 구조체로 작성된다. Windows API를 이용한 프로그래밍 방식에서는 각각의 윈도우를 핸들handle이라고 부르는 정숫값으로 구분한다. 이 경우 대부분의 API 함수는 첫 번째 인자로 윈도우의 핸들 값을 넘겨주어야 하는 번거로운 일이 발생한다. 이런 불편한 점을 개선하고, 또한 객체 지향 프로그래밍 기법을 적용하기 위하여 Microsoft에서 Windows API를 C++ 형태로 포장한 클래스들의 집합을 개발하였다. 이것이 바로 MFC이다.
MFC란 Microsoft Foundation Classes의 약자로써 빠르고 간편한 Windows 응용 프로그램 개발을 지원하기 위하여 Microsoft에서 만든 클래스 모음이다. MFC 프로그래밍에서는 모든 윈도우가 클래스 형태로 이식되었기 때문에 특정 윈도우의 기능을 제어하려면 해당 윈도우를 표현하는 클래스의 멤버 함수를 호출한다. 함수를 호출할 때마다 윈도우 핸들을 넘겨주어야 하던 기존 Windows API 사용 방식의 불편함이 사라짐과 동시에 보다 간단하고 안전한 객체 지향 프로그래밍이 가능하게 된 것이다. 또한 MFC에서는 도큐먼트-뷰-프레임document-view-frame 구조를 사용함으로써 다른 객체 지향 언어에서도 널리 사용되고 있는 MVCModel-View-Controller 디자인을 지원한다.