现在的位置: 首页 > 综合 > 正文

vc6.0用c改变字体颜色

2013年08月16日 ⁄ 综合 ⁄ 共 3002字 ⁄ 字号 评论关闭

http://blog.csdn.net/zwb8848happy/article/details/7284901

VC中要调用windows API来改变字体颜色。

下面举个例子:


#include  <stdio.h> 
#include  <windows.h> 

int main(void)  

printf("Hello\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);
printf("Hello\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE|FOREGROUND_GREEN|FOREGROUND_RED);
printf("Hello\n");

getchar(); 
return 0; 


其中FOREGROUND颜色只有四种:GREEN,BLUE,RED,INTENSIFY(加强)。

也许有人要问,如果要有其他颜色该怎么办?

这很简单,所有颜色都是基于红绿蓝三原色来调和而成的。

举两个例子:

红色+绿色=黄色 
绿色+蓝色=青色 
红色+蓝色=品红 
红色+绿色+蓝色=白色

黄色、青色、品红都是由两种及色相混合而成,所以它们又称相加二次色。另外: 

红色+青色=白色
绿色+品红=白色
蓝色+黄色=白色 

0.设置控制台输出行数和列数

  system("mode con:cols=100 lines=20000");

  1.改变整个控制台的颜色

  用 system("color 0A");

  其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下:

  0=黑色

  1=蓝色

  2=绿色

  3=湖蓝色

  4=红色

  5=紫色

  6=黄色

  7=白色

  8=灰色

  9=淡蓝色

  A=淡绿色

  B=淡浅绿色

  C=淡红色

  D=淡紫色

  E=淡黄色

  F=亮白色

  2.改变下一个输出或者输入字体和背景的颜色

  采用SetConsoleTextAttribute函数,如

  White on Black:

  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |

  FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);

  Red on Black:

  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |

  FOREGROUND_RED);

  Green on Black:

  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |

  FOREGROUND_GREEN);

  Yellow on Black:

  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |

  FOREGROUND_RED | FOREGROUND_GREEN);

  Blue on Black:

  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |

  FOREGROUND_BLUE);

  Magenta on Black:

  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |

  FOREGROUND_RED | FOREGROUND_BLUE);

  Cyan on Black:

  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |

  FOREGROUND_GREEN | FOREGROUND_BLUE);

  Black on Gray:

  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |

  BACKGROUND_INTENSITY);

  Black on White:

  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |

  FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE);

  Red on White:

  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |

  FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE |

  FOREGROUND_RED);

  等等。

  需要引入头文件:

  windows.h

  函数原型:

  BOOL SetConsoleTextAttribute( HANDLE hConsoleOutput, WORD wAttributes );

  wAttributes 的取值含义对应如下:

  Attribute Meaning

  FOREGROUND_BLUE Text color contains blue.

  FOREGROUND_GREEN Text color contains green.

  FOREGROUND_RED Text color contains red.

  FOREGROUND_INTENSITY Text color is intensified.

  BACKGROUND_BLUE Background color contains blue.

  BACKGROUND_GREEN Background color contains green.

  BACKGROUND_RED Background color contains red.

  BACKGROUND_INTENSITY Background color is intensified.

  COMMON_LVB_LEADING_BYTE Leading byte.

  COMMON_LVB_TRAILING_BYTE Trailing byte.

  COMMON_LVB_GRID_HORIZONTAL Top horizontal.

  COMMON_LVB_GRID_LVERTICAL Left vertical.

  COMMON_LVB_GRID_RVERTICAL Right vertical.

  COMMON_LVB_REVERSE_VIDEO Reverse foreground and background attributes.

  COMMON_LVB_UNDERSCORE Underscore.

抱歉!评论已关闭.