Windows控制台程序修改字体颜色

设置颜色通过Windows函数BOOL SetConsoleTextAttribute(HANDLE hConsoleOutput, WORD wAttributes)实现。

#include<stdio.h>
#include<windows.h>
intmain(void)
{
HANDLEconsolehwnd;//创建句柄,详细句柄知识,请百度一下或查MSDN
consolehwnd=GetStdHandle(STD_OUTPUT_HANDLE);//实例化句柄
SetConsoleTextAttribute(consolehwnd,FOREGROUND_RED);//设置字体颜色
printf("hello");
SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_GREEN);
printf("world!\n");
getchar();
SetConsoleTextAttribute(consolehwnd,BACKGROUND_INTENSITY|BACKGROUND_BLUE);
printf("Itisreallybeautiful!\n");
return0;
}

 能设置些什么颜色呢?在wincom.h里有定义:

#define FOREGROUND_BLUE	1
#define FOREGROUND_GREEN	2
#define FOREGROUND_RED	4
#define FOREGROUND_INTENSITY	8
#define BACKGROUND_BLUE	16
#define BACKGROUND_GREEN	32
#define BACKGROUND_RED	64
#define BACKGROUND_INTENSITY	128

 我们来测试一下:

/*
 * main.c
 *
 *  Created on: 2014-6-16
 *      Author: HZY
 */

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

void setConsoleColor(WORD color){
	HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleTextAttribute(handle, color);
}

int main(int argc, char** argv) {

	int i;
	for(i = 0; i < 16; i++){
		setConsoleColor(i);
		printf("Hello World!");
		setConsoleColor(i << 4);
		printf("Hello World!\n");
	}

	getchar();
	return 0;
}

前景色和背景色都可以自由组合:

猜你喜欢

转载自hzy3774.iteye.com/blog/2080702