시리즈:중급 프로그래밍 시리즈/C++/MFC/따라하기

틀:토막글 이 문서에서는 예제를 따라하며 C++을 배운다. 묻지도 따지지도 않고 따라하기 때문에 어느새 C++에 익숙해진 자신을 발견할 수 있을 것이다.

시작하기전에

프로그램 다운로드 및 설치

일단, 이 문서를 보는 위키러들이 가장 눈에 쉽게 보이는 결과를 만드는 것이 주 목적이기 때문에, 윈도우즈에서 작업한다.

프로그램은 Studio Community 2013을 사용한다. 링크된 페이지에서 프로그램을 다운받고 다음, 다음을 연타하며 설치하면 된다. 설치가 끝난 후, Microsoft 계정으로 인증하자.

프로그램 하나 만드는 김에 도스창에 나오는 프로그램 말고 그래픽 창이 뜨는 프로그램도 만들 것이다. 여기에서는 그래픽 프로그래밍을 위해 DirectX를 사용한다. 다운로드 링크는 [1] 역시나 다음 버튼을 계속 누르고 기본 설정으로 설치하면 된다.

설명은 영문판을 기준으로 한다. 한글판을 안깔아서 작성자가 귀찮다고 한다

슬라이딩 퍼즐

많은 사람들이 15-퍼즐을 알 것이다. 이 프로그램은 이를 기초로 하여 구상해냈다.

기초: 15-퍼즐을 만들어보자

프로젝트 생성

Visual Studio 실행.png

Visual Studio를 실행한 후 화면이다. 화면의 배경이 어두운건 커스텀 설정을 바꿨기 때문이니 신경쓰지 않아도 된다. 이 화면상에서, 메뉴의 File-New-Project를 순서대로 누르거나 Ctrl+Shift+N을 누르자.

Visual Studio 새 프로젝트.png

왼쪽의 Templates에서 Visual C++을 선택한다.

Visual Studio Cpp 선택.png

Visual C++의 하위 항목 중 MFC를 선택한다.

Visual Studio MFC 선택.png

오른쪽에서 MFC Application을 선택하고, Name에 Sliding Puzzle라고 적은 뒤 Ok를 누른다.

MFC 마법사1.png

Next를 누른다.

MFC 마법사2.png

Application type을 Single Document, Project style을 MFC standard로 하고 Finish를 누른다.

예제 프로젝트 생성 완료.png

프로젝트가 생성되면 Solution Explorer에 뭔가 많이 떠있을 것이다.

프로젝트 설정

소스코드를 직접 타이핑하자

위키미디어 공용의 이미지비트맵 이미지로 변환해서 사용한다. 방금 전에 생성한 프로젝트의 경로(따로 설정을 하지 않았다면 내문서/Visual Studio 2013/Project/Sliding Puzzle/Sliding Puzzle)에 비트맵 이미지를 넣는다.

리소스를 프로젝트에 포함시키기

쉽게 배우는 CPP 리소스창 추가 전.png

오른쪽에 있는 이 창이 보일것이다. 밑의 탭에는 Solution Explorer, Team Explorer, Class Explorer 세 개가 있다. 이제 여기에 하나를 더 추가할 것이다.

쉽게 배우는 CPP 리소스창 위치.png

위 처럼 클릭하거나 Ctrl+Shift+E를 사용하여 Resource Explorer를 보이게 한다. 그럼 오른쪽에 Resouce Explorer 탭이 자동으로 선택되어 있을 것이다.

쉽게 배우는 CPP 리소스 추가 메뉴.png

위 그림처럼 클릭한다.

쉽게 배우는 CPP 비트맵 선택.png

리소스 추가 창이 뜨는데, 여기에서 Bitmap을 선택하고 Import 버튼을 누른다.

쉽게 배우는 CPP 임포트 비트맵.png

앞에서 미리 넣어 두었던 비트맵 파일을 선택한다.

쉽게 배우는 CPP 리소스 추가 완료.png

프로그램에서 사용할 비트맵 이미지를 정상적으로 추가하였다.

이제, 약간의 클릭과 타이핑만 하시면 됩니다

쉽게 배우는 CPP 클래스 뷰 선택.png

오른쪽 탭에서 Class View를 누르면 나오는 화면에서 Sliding Puzzle 항목을 열고, CSlidingPuzzleView 항목을 선택한다.

쉽게 배우는 CPP 속성에서 WM PAINT 메시지 처리 함수 추가.png

Properties 창에 있는 아이콘들 중 오른쪽에서 3번째 아이콘을 클릭한 후 스크롤을 내려 WM_PAINT를 찾는다. WM_PAINT의 오른쪽 칸의 화살표가 있는 흰색 박스(빈칸 옆의 흰색 박스)를 누른다. 누르면 나오는 <Add> OnPaint를 누른다. 같은 방법으로, WM_KEYDOWN, WM_LBUTTONDOWN, WM_LBUTTONUP의 처리함수(OnKeyDown, OnLButtonDown, OnLButtonUp)을 추가한다.

대망의 프로젝트 빌드 및 실행

스톱워치 기능 넣기

분할 확장: [math]\displaystyle{ M \times N }[/math]으로!

이미지 변경: 입맛대로 이미지 바꿔서 하자

게임의 난이도 상승 예시