[Util 클래스의 Class Diagram]


프로그램 전반에서 사용되는 유틸리티 클래스인 Util 클래스에 대해서 살펴보려고 합니다. Util.h 와 Util.c 에서 변경된 내역 위주로 설명드리겠습니다. 먼저, 추가, 삭제, 변경 이력에 대해서 말씀드리겠습니다.


[Util.h 버전 비교]


4 ~ 10 라인 (추가)

13 라인 (추가)


[Util.c 버전 비교]


16 ~ 18 라인 (추가)




이제는, 위에서 언급한 부분들을 분석해 보겠습니다.


[Util.h]

#ifndef _UTIL_H
#define _UTIL_H

#define FONT_COLOR_SIZE 16

enum FontColor{
	BLACK, BLUE, GREEN, JADE, RED, PURPLE, YELLOW, WHITE, GRAY,
	LIGHT_BLUE, LIGHT_GREEN, LIGHT_JADE, LIGHT_RED, LIGHT_PURPLE, LIGHT_YELLOW, LIGHT_WHITE
};

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

#endif


4 ~ 10 라인 (추가)

4 라인에서 폰트 색상 개수를 16 으로 상수화합니다. 그리고 6 라인에서는, 열거형 FontColor 를 정의하고, 열거형 값으로, BLACK 부터 LIGHT_WHITE 까지 총 16 개의 정수를 정의합니다. (0 ~ 15) 이 열거형 값들은, 향후, 출력 커서의 폰트 색상을 변경할 때에 사용되는 값들입니다.


13 라인 (추가)

FontUtil_ChangeFontColor 함수의 선언부입니다.


[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);
}

void FontUtil_ChangeFontColor(int color){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
}


16 ~ 18 라인 (추가)

FontUtil_ChangeFontColor 함수의 정의부입니다. 매개변수로 color 를 받아서 해당 color 로 출력 커서의 색상을 변경하는 역할을 합니다. SetConsoleTextAttribute 함수를 호출하면서 매개변수로 변경할 색상 정수값을 넘겨 출력 커서의 색상을 변경합니다.

(콘솔 글자 색 변경하기 참고)

http://kkikkodev.tistory.com/29


by kkikkodev 2015. 8. 21. 00:51