• 검색 결과가 없습니다.

※ CEssyDlg 클래스에 변수, 함수, 메시지 추가하기.

N/A
N/A
Protected

Academic year: 2021

Share "※ CEssyDlg 클래스에 변수, 함수, 메시지 추가하기."

Copied!
12
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

● 아래와 같이 대화상자 기반

으로 프로젝트(Mine)를 생성하고, 디자인 하시오.

컨트롤 Static Text Button Control Button Control Button Control ID IDC_STATIC IDC_BUTTON_EASY IDC_BUTTON_NORMAL IDC_BUTTON_HARD

Caption 난이도 선택 초급 중급 고급

Event Func.

OnBnClickedButtonEasy ( )

OnBnClickedButtonNormal ( )

OnBnClickedButtonHard ( )

- L버튼 (IDC_BUTTON_EASY) 컨트롤에 대한 이벤트 핸들러 추가하기

- 상기 다이얼로그에서 초급 버튼을 눌렀을 때 새로운 다이얼로그로 띄우기 위해 아 래와 같이 새로운 다이얼로그를 삽입(①)하고 클래스를 추가(②)하자.

(다음 페이지에서 설명)

(2)

① 새로운 다이얼로그 삽입

② 추가된 다이얼로그를 컨트롤 할 클래스 추가

(3)

- 새로 추가한 다이얼로그에 아래와 같이 디자인하자.

→ Button 컨트롤 추가.

→ Static 컨트롤에 int형으로 m_nTime, m_nMine 변수를 추가.

(주의 변수 추가 시, 새로 만든 다이얼로그의 클래스에 추가해야 함.)

- 메인 다이얼로그(CMineDlg)에서 초급 버튼을 클릭하였을 때 추가한 다이얼로그 (CEasyDlg)를 띄우기 위해 아래와 같이 CMineDlg에 변수를 추가하고 코딩하자.

→ CMineDlg 클래스에 CEasyDlg 클래스의 Easy 변수 추가 → CMineDlg 헤더의 맨 윗줄에 #include “CEasyDlg.h” 추가하기

(4)

- 아래와 같이 CMineDlg 클래스의 OnBnClickedButtonEasy( ) 함수에 새로 만든 다이얼 로그 창을 띄우자.

현재까지의 내용을 실행해보자.

※ CEssyDlg 클래스에 변수, 함수, 메시지 추가하기.

● 멤버변수 추가하기

멤버 변수 내용

int Block[10][10] 각 블럭의 상태 (0.기본상태 1.열린상태 2.깃발상태)

int Mine[10][2] 지뢰의 위치를 저장하는 배열

int SelectedBlock[2] 선택된 블럭을 저장하기 위한 배열

bool IsLbtnClicked 좌클릭이 되어있는지 표시하기 위한 변수(주변 열기에 사용)

bool IsStarted 게임이 시작되었는지 나타내기 위한 변수(타이머 설정에 사용)

● 멤버함수 추가하기

멤버 변수 내용

void InitDlg( ) 초기화 함수

void GameOver( ) 게임오버 시 실행할 함수

void Clear( ) 게임클리어 시 실행할 함수

bool ClearCheck( ) 게임이 클리어 되었는지 체크하는 함수

void Open(int x, int y) 블럭을 열기위한 함수

void Flag(int x, int y) 블럭에 깃발을 표시하기 위한 함수

void OpenSurround(int x, int y) 주변열기를 위한 함수

● 메시지 추가하기

메시지 처리기 함수 내용

WM_LBUTTONDOWN OnLButtonDown 좌버튼 클릭

WM_LBUTTONUP OnLButtonUp 좌버튼 놓기

WM_MBUTTONDOWN OnMButtonDown 휠버튼 클릭

WM_RBUTTONDOWN OnRButtonDown 우버튼 클릭

WM_TIMER OnTimer 타이머

(5)

- CEasyDlg 클래스에 멤버변수, 멤버함수 등이 추가된 화면 (확인용)

- CEasyDlg 클래스의 DoDataExchange (확인용)

- CEasyDlg 클래스의 메시지 맵 (확인용)

(6)

▶ 초기화 함수 구현: void CEasyDlg::InitDlg(void)

▶ 시작 버튼 함수 구현: void CEasyDlg::OnBnClickedButtonStart( )

실행해보자.

(7)

▶ 열기 함수 구현: void CEasyDlg::Open( )

다음 페이지에 이이서...

(8)

▶ bool CEasyDlg::ClearCheck( )

(9)

▶ void CEasyDlg::Clear( )

▶ void CEasyDlg::GameOver( )

▶ 메시지 처리 함수 : void CEasyDlg::OnTimer( )

▶ 메시지 처리 함수 : void CEasyDlg::OnLButtonDown( )

(10)

▶ 메시지 처리 함수 : void CEasyDlg::OnLButtonUp( )

현재까지의 내용을 실행해보자. ( 열기 동작이 제대로 동작하는가? )

(11)

▶ 깃발 표시 동작 관련 함수 구현: void CEasyDlg::Flag(int x, int y)

(12)

▶ 깃발 표시 동작 관련 함수 구현: void CEasyDlg::OpenSurround(int x, int y)

▶ 메시지 처리 함수 : void CEasyDlg::OnMButtonDown( )

▶ 메시지 처리 함수 : void CEasyDlg::OnRButtonDown( )

참조

관련 문서

-3막의 낯설게하기(극중극과 패로디)의 의의: 극중극 형태의 연극형식 은 새로운 문제를 제기하고 해결하기 위한 모색과 관련. - 새로운 내용과 형식에 대해

§ 처음 눌렀을 때 고열이 손끝에 느껴지는데 오래 지나서 점차 한냉감을 느낀다거나, 처음 눌렀을 때 냉감을 느끼 는데 오래 지나서 점차

③ 새로운 조의 멜로디를 새로운 조에 맞는 계이름이 되도록 적는다.. ④ 임시표에 대한 검토를

 왼쪽 마우스를 클릭하면 출력하던 것이 멈췄을 때, WM_LBUTTONDOWN 메시지 처 리를 하는 곳으로 메시지 제어권을 보내주므로

「사회복지사업법 시행규칙」 제5조의2제1항에 따라 사회복지사 보수교육 계획서를 아 래와 같이

• 어떤 개념에 대한 새로운 조사도구와 널리 통용되고 있는 기존의 조사도구를 비교하여 새로운 조사도구의 타당성 여부를 판단할 때 사용한다.. •

· 새로운 비전과 경영이념, 새로운 제품이나 서비스, 새로운 조직설계와 리더십, 새로운 기술과 공정, 구성원을 변화시 키는 새로운 교육 프로그램 등을

프로테스탄트와 부르 주아가 발달해 봉건제가 정착 않했으나 국력이 쇠퇴하면서 신대륙을 미국독립선언..