C++에서는 windows api를 사용할 수 있습니다. 이 기능을 통해서 콘솔창에서 커서의 깜빡임 유무, 글자색, 배경색외 다양한 기능들을 활용 할 수 있습니다. 

 

 

#include<Windows.h>
class Api
{
	int BLACk =0;
	int Dark_blue =1;
	int Dark_green =2;
	int Dark_sky_blue =3;
	int Dark_red =4;
	int Dark_voilet =5;
	int Dark_yellow =6;
	int Gray =7;
	int Dark_gray =8;
	int Blue =9;
	int green =10;
	int Sky_blue =11;
	int red =12;
	int voilet =13;
	int yellow =14;
	int White =15;
	int x;
	int y;
	int color;
public :
	Api();
	~Api();
	int gotoxy(int x, int y);
	void SetColor(int color, int bgcolr);
    void SetCursor(bool visible);
};

제가 사용했던 윈도우 api의 기능은 크게 세가지 입니다. gotoxy메소드를 통한 커서의 위치 이동,Setcolor 메소드를 통하 한 글자색과 배경색 변경 SetCursor 메소드를 통한 커서의 깜빡임 유무 제어입니다. 

 

클래스 멤버로는 int 변수에 rgb 색정보에 해당하는 숫자들을 저장하였습니다. 

 

int Api::gotoxy(int x, int y)
{
	HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
	COORD pos;
	pos.X = x;
	pos.Y = y;
	SetConsoleCursorPosition(hConsole, pos);
}

gotoxy의 구현입니다. 커서의 위치를 변경함으로서 이와 연계해서 콘솔창에 출력하고 싶은 위치를 변경할 수 있습니다. 

void Api::SetColor(int color, int bgcolr)
{
	static HANDLE std_output_handle = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleTextAttribute(std_output_handle, bgcolr <<4| color);
}

SetColor의 구현 이때 첫번째 매개변수는 글자색, 두번째 매개변수는 배경색을 나타냅니다. 또한

기본 콘솔창의 색정보는 SetColor(7,0) 입니다. 

 

void Api::SetCursor(bool visible)
{
	CONSOLE_CURSOR_INFO ConsoleCursor;
	ConsoleCursor.bVisible = visible;
	ConsoleCursor.dwSize =1;
	SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &ConsoleCursor);
}

True,False 입력을 통해서 커서으 깜빡임을 제어할 수 있습니다.

 

 

 

 

+ Recent posts