본문 바로가기

C or C++/C or C++ API

SetConsoleTextAttribute API

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

SetConsoleTextAttribute API

 

위 API는 콘솔창의 글자색을 변경해주는 API이다

 

기존에 썻던 글자색이 맘에안들거나 무지개색으로 출력하고싶을때는 이 API를 사용해서 찍어보는것도 좋을거같다

 

먼저 함수원형을 살표보자

1
2
3
4
5
6
 
BOOL WINAPI SetConsoleTextAttribute(
  _In_ HANDLE hConsoleOutput,
  _In_ WORD   wAttributes
);
 
cs

 

함수원형은 이렇다

 

첫번째 인자로 콘솔창의 핸들을받고

 

두번째 인자로는 색을 받는거같다

 

색의 표를 만들어보면

 

번호

색깔

0

검정 

1

어두운 파랑 

2

어두운 초록

3

어두운 하늘

4

어두운 빨강

5

어두운 보라

6

어두운 노랑

7

회색

8

어두운 회색

파랑 

10

초록

11

하늘

12

빨강

13

보라

14

노랑

15

하양

이런식이다

 

16부터는 테두리에 색이 입혀진다.

 

위 APi를 사용해 간단한 재밌는 프로그램을 만들어봤다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <stdio.h>
#include <windows.h>
void gotoxy(int x,int y);
void set_font();
int c=2;
void main()
{
    int cnt=-1;
    char *str = "Pierot!";
    printf("%s",str);
    while(1)
    {
        set_font();
        gotoxy(cnt,0);
        printf("%c",str[cnt++]);
        Sleep(100);
        if(cnt==7) cnt=0;
        if(c==15) c=3;
    }
 
}
void set_font()
{
    c++;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),c);
}
void gotoxy(int x,int y)
{
    COORD Pos;
    Pos.X=x;
    Pos.Y=y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),Pos); 
}
cs

시작색을 3번색깔부터 시작햇다

 

그이전색은 마음에안든다..

 

 

실행하면 이런식이다

 

 

'C or C++ > C or C++ API' 카테고리의 다른 글

SetConsoleCursorPosition API  (3) 2016.11.13