[Util 클래스의 Class Diagram]


앞서 설명드린 프로그램 설계를 토대로, 소스 코드 구현부를 자세히 설명드리고자 합니다. 먼저, Util.h 와 Util.c 를 분석해 보겠습니다.


[Util.h]

#ifndef _UTIL_H
#define _UTIL_H

void CursorUtil_GotoXY(int x, int y);
void CursorUtil_Hide();

#endif


1 ~ 2, 6 라인

현재 헤더파일을 include 하는 곳에서 중복 포함하지 않게 하기 위한 guard 입니다.


4 ~ 5 라인

Util 클래스에서 사용할 함수의 선언부입니다.


[Util.c]

#include <windows.h>
#include "Util.h"

void CursorUtil_GotoXY(int x, int y){
	COORD pos = { x, y };
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}

void CursorUtil_Hide(){
	CONSOLE_CURSOR_INFO cursorInfo;
	cursorInfo.dwSize = 1;
	cursorInfo.bVisible = FALSE;
	SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursorInfo);
}


1 ~ 2 라인

소스코드에 필요한 헤더파일을 include 합니다.


4 라인

CursorUtil_GotoXY 함수의 정의부입니다. 매개변수로 x 와 y 를 받아서, 출력 커서를 x, y 위치로 이동시킵니다.


4 ~ 7 라인

x 와 y 를 가지고 COORD 구조체를 생성하고, 이를 매개변수로 넘기면서, SetConsoleCursorPosition 함수를 호출하여 출력 커서를 이동합니다.

(콘솔 커서 좌표 이동하기 참고)

http://kkikkodev.tistory.com/26


9 라인

CursorUtil_Hide 함수의 정의부입니다. 이 함수는 커서를 숨기는 역할을 합니다.


9 ~ 14 라인

CONSOLE_CURSOR_INFO 구조체를 선언하고, 멤버인 bVisible 에 FALSE 를 저장하고, 이를 SetConsoleCursorInfo 함수에 넘겨서 커서를 숨깁니다.

(콘솔 커서 숨기기 & 두께 조절하기 참고)

http://kkikkodev.tistory.com/27


by kkikkodev 2015. 6. 12. 11:23