글
[Util 클래스의 Class Diagram]
앞서 설명드린 프로그램 설계 부분을 토대로, 소스 코드 구현부를 자세히 설명드리겠습니다. 먼저, Util.h 와 Util.c 를 분석해 보겠습니다.
[Util.h]
#ifndef _UTIL_H #define _UTIL_H #define WINDOW_LINE_SIZE 9 #define WINDOW_COL_SIZE 66 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 WindowUtil_ChangeWindowSize(int lines, int cols); void FontUtil_ChangeFontColor(int color); #endif
1, 2, 17 라인
#ifndef ~ #define, #endif 문장은 헤더파일의 내용을 중복 포함되지 않게 하기 위해 사용합니다.
4 ~ 5 라인
원하는 콘솔창의 가로, 세로 크기를 상수로 정해 놓습니다. 즉, 가로 9 줄, 세로 66 칸으로 콘솔창을 바꿀 예정입니다.
7 ~ 10 라인
출력될 글자의 색에 대한 열거형 상수를 정의합니다. 검정색 (0) 부터 연한 흰색 (15) 까지 순차적으로 매핑합니다.
12 ~ 15 라인
Util 에 관련된 함수들의 선언부입니다.
[Util.c]
#include <Windows.h> #include <stdio.h> #include "Util.h" #define COMMAND_SIZE 256 void CursorUtil_GotoXY(int x, int y){ COORD pos = { x, y }; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos); } void CursorUtil_Hide(){ CONSOLE_CURSOR_INFO cursorInfo = {0, }; cursorInfo.dwSize = 1; cursorInfo.bVisible = FALSE; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursorInfo); } void WindowUtil_ChangeWindowSize(int lines, int cols){ char command[COMMAND_SIZE] = { '\0', }; sprintf(command, "mode con: lines=%d cols=%d", lines, cols); system(command); } void FontUtil_ChangeFontColor(int color){ SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color); }
1 ~ 3 라인
Util.c 파일에서 필요한 헤더파일들을 포함시킵니다.
7 라인
CursorUtil_GotoXY 함수의 정의부입니다. 매개변수로 x 와 y 를 받아서 출력 커서를 (x, y) 위치로 이동합니다.
8 ~ 9 라인
SetConsoleCursorPosition 함수를 통해서 커서의 위치를 매개변수로 받은 x 와 y 좌표로 이동시킵니다.
(콘솔 커서 좌표 이동하기 참고)
http://kkikkodev.tistory.com/26
12 라인
CursorUtil_Hide 함수의 정의부입니다. 콘솔에서 커서를 숨겨서 깜빡임을 없앱니다.
13 ~ 16 라인
SetConsoleCursorInfo 함수를 통해서 커서를 숨깁니다.
(콘솔 커서 숨기기 & 두께 조절하기 참고)
http://kkikkodev.tistory.com/27
19 라인
WindowUtil_ChangeWindowSize 함수의 정의부입니다. 매개변수로 lines (콘솔의 행 수) 와 cols (콘솔의 열 수) 를 받아서, 콘솔창의 크기를 재설정합니다.
20 ~ 22 라인
매개변수로 받은 lines 와 cols 를 가지고 콘솔창의 크기를 변경합니다.
(콘솔 창 크기 변경하기 참고)
http://kkikkodev.tistory.com/28
25 라인
FontUtil_ChangeFontColor 함수의 정의부입니다. 매개변수로 color (바꿀 색상) 를 받아서, 글꼴 색상을 변경합니다.
25 ~ 27 라인
매개변수로 받은 색상을 가지고 콘솔창의 글자색을 변경합니다.
(콘솔 글자 색 변경하기 참고)
'1.2) 프로젝트 > 디지털 시계' 카테고리의 다른 글
디지털 시계 ver 0.2 (1) - 실행 결과 & 프로젝트 개요 (0) | 2015.07.18 |
---|---|
디지털 시계 ver 0.1 (6) - 개발 완료 / 후기 (4) | 2015.04.11 |
디지털 시계 ver 0.1 (5) - 소스코드 구현 (Main) (0) | 2015.04.11 |
디지털 시계 ver 0.1 (4) - 소스코드 구현 (DigitalClock) (0) | 2015.04.10 |
디지털 시계 ver 0.1 (2) - 프로그램 설계 (Use Case, Class, Sequence) (0) | 2015.04.10 |
디지털 시계 ver 0.1 (1) - 실행 결과 & 프로젝트 개요 (2) | 2015.04.10 |
RECENT COMMENT