设为首页 加入收藏

TOP

C语言控制台窗口图形界面编程(三)(一)
2015-01-22 21:25:02 来源: 作者: 【 】 浏览:100
Tags:语言 控制台 窗口 图形 界面 编程
<知识分享>
?
在这里介绍一个设置文本属性的函数,原型如下
?
BOOL SetConsoleTextAttribute( ? // 设置WriteConsole等函数的字符属性 ?
HANDLE hConsoleOutput, ? ? ? ? ?// 句柄 ?
WORD wAttributes ? ? ? ? ? ? ? ?// 文本属性 ?
); ?
?
?
? ? ? ?顺便提一下文本属性,其实就是颜色属性,有背景色和前景色(就是字符的颜色)两类,每一类只提供三原色(红,绿,蓝)和加强色(灰色,可与其他颜色搭配使用,使颜色变亮,后面会提到)。最后还有一个反色(不太清楚这个到底怎么用,很奇葩的东西)。示例程序如下:
?
#include ?
#include ?
#include < windows.h> ?
#include ?
/*?
基本文本属性?
FOREGROUND_BLUE 蓝色?
FOREGROUND_GREEN 绿色?
FOREGROUND_RED 红色?
FOREGROUND_INTENSITY 加强?
BACKGROUND_BLUE 蓝色背景?
BACKGROUND_GREEN 绿色背景?
BACKGROUND_RED 红色背景?
BACKGROUND_INTENSITY 背景色加强?
COMMON_LVB_REVERSE_VIDEO 反色?
*/ ?
??
const WORD FORE_BLUE ? = FOREGROUND_BLUE; ? ? ? ? ? //蓝色文本属性 ?
const WORD FORE_GREEN ?= FOREGROUND_GREEN; ? ? ? ? ?//绿色文本属性 ?
const WORD FORE_RED ? ?= FOREGROUND_RED; ? ? ? ? ? ?//红色文本属性 ?
const WORD FORE_PURPLE = FORE_BLUE | FORE_RED; ? ? ?//紫色文本属性 ?
const WORD FORE_CYAN ? = FORE_BLUE | FORE_GREEN; ? ?//青色文本属性 ?
const WORD FORE_YELLOW = FORE_RED | FORE_GREEN; ? ? //黄色文本属性 ?
const WORD FORE_GRAY ? = FOREGROUND_INTENSITY; ? ? ?//灰色文本属性 ?
const WORD BACK_BLUE ? = BACKGROUND_BLUE; ? ? ? ? ? //蓝色背景属性 ?
const WORD BACK_GREEN ?= BACKGROUND_GREEN; ? ? ? ? ?//绿色背景属性 ?
const WORD BACK_RED ? ?= BACKGROUND_RED; ? ? ? ? ? ?//绿色背景属性 ?
const WORD BACK_PURPLE = BACK_BLUE | BACK_RED; ? ? ?//紫色背景属性 ?
const WORD BACK_CYAN ? = BACK_BLUE | BACK_GREEN; ? ?//青色背景属性 ?
const WORD BACK_YELLOW = BACK_RED | BACK_GREEN; ? ? //黄色背景属性 ?
const WORD BACK_GRAY ? = BACKGROUND_INTENSITY; ? ? ?//灰色背景属性 ?
??
int main() ?
{ ?
? ? HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE); ? ?//获得标准输出设备句柄 ?
? ? CONSOLE_SCREEN_BUFFER_INFO csbi; ? ? ? ? ? ? ? ? ? ? ? ?//定义窗口缓冲区信息结构体 ?
? ? GetConsoleScreenBufferInfo(handle_out, &csbi); ? ? ? ? ?//获得窗口缓冲区信息 ?
? ? SetConsoleTextAttribute(handle_out, FORE_BLUE); ?
? ? printf("蓝色字符\n"); ?
? ? SetConsoleTextAttribute(handle_out, FORE_RED); ?
? ? printf("红色字符\n"); ?
? ? SetConsoleTextAttribute(handle_out, FORE_GREEN); ?
? ? printf("绿色字符\n"); ?
? ? SetConsoleTextAttribute(handle_out, FORE_PURPLE); ?
? ? printf("紫色字符\n"); ?
? ? SetConsoleTextAttribute(handle_out, FORE_CYAN); ?
? ? printf("青色字符\n"); ?
? ? SetConsoleTextAttribute(handle_out, FORE_YELLOW); ?
? ? printf("黄色字符\n"); ?
? ? SetConsoleTextAttribute(handle_out, FORE_GRAY); ?
? ? printf("灰色字符\n"); ?
? ? SetConsoleTextAttribute(handle_out, FORE_GREEN | FORE_BLUE | FORE_RED); ?
? ? printf("白色字符\n"); ?
? ? SetConsoleTextAttribute(handle_out, BACK_BLUE); ?
? ? printf("蓝色背景\n"); ?
? ? SetConsoleTextAttribute(handle_out, BACK_RED); ?
? ? printf("红色背景\n"); ?
? ? SetConsoleTextAttribute(handle_out, BACK_GREEN); ?
? ? printf("绿色背景\n"); ?
? ? SetConsoleTextAttribute(handle_out, BACK_PURPLE); ?
? ? printf("紫色背景\n"); ?
? ? SetConsoleTextAttribute(handle_out, BACK_CYAN); ?
? ? printf("青色背景\n"); ?
? ? SetConsoleTextAttribute(handle_out, BACK_YELLOW); ?
? ? printf("黄色背景\n"); ?
? ? SetConsoleTextAttribute(handle_out, BACK_GRAY); ?
? ? printf("灰色背景\n"); ?
? ? SetConsoleTextAttribute(handle_out, BACK_BLUE | BACK_RED | BACK_GREEN); ?
? ? printf("白色背景\n"); ?
? ? SetConsoleTextAttribute(handle_out, BACK_GREEN | FORE_RED); //示例:绿色背景红色字符 ?
? ? printf("绿色背景与红色字符的混合\n"); ?
? ? SetConsoleTextAttribute(handle_out, FOREGROUND_INT
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言--指针(一) 下一篇c语言实现判断一个数是否是素数

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: