최상단 광고

2012년 4월 8일 일요일

콘솔창에서 글자 색상 바꾸기


SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), (WORD)생상 인덱스); 
enum _Attribute
 {
  BLACK = 0,   // 검정
  DARK_BLUE,          // 어두운 파랑
  DARK_GREEN,         // 어두운 초록
  DARK_SKY_BLUE,      // 어두운 하늘
  DARK_RED,   // 어두운 빨강
  DARK_VOILET,  // 어두운 보라
  DARK_YELLOW,  // 어두운 노랑
  GRAY,    // 회색
  DARK_GRAY,   // 어두운 회색
  BLUE,    // 파랑
  GREEN,    // 초록
  SKY_BLUE,   // 하늘
  RED,    // 빨강
  VIOLET,    // 보라
  YELLOW,    // 노랑
  WHITE,    // 흰색
  COUNT,
};
위 인덱스값은 인위적인 것이다.
 
windows.h 헤더를 인크루드 해야 되고
생상을 지정하면 그이후에 출력 되는 모든 텍스트는 지정된 색상으로 나온다.
그러므로 특정 텍스트만 색상을 주고 싶다면
 
CONSOLE_SCREEN_BUFFER_INFO kInfo;
 GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &kInfo);
 
를 사용하여 kInfo.wAttributes 이값으로 다시 Set 해주면 된다.
 
위 인덱스값외에 더 있다. 일정한 반복을 통해서 나오며 위의 인덱스값이 하나의 주기로
16부터 위순서대로 텍스트 색상은 출력이 되지만 배경이 틀리게 된다.
 
예를 들어 0 ~ 15개를 하나의 주기이고 이때 배경색은 검정
16 ~ 31개 첫번째 주기의 텍스트 색상은 같지만 배경은 어두운 파랑이다.

댓글 없음: