转:c#:更改控制台文字输出颜色
2010-03-19 10:05
721 查看
链接:http://support.microsoft.com/kb/319883/zh-cn
简介
// loadTOCNode(2, 'summary');// ]]>
若要将控制台窗口将显示的文本的前景色和背景颜色使用 SetConsoleTextAttribute Win32 应用程序编程接口 (API) 函数。此函数设置屏幕缓冲区写入的字符的属性。
当您在运行时更改这些属性时,所做的更改是有效的只要控制台窗口处于打开状态。如果关闭,然后重新打开控制台窗口属性重置为它们的默认值。如果从已在运行的控制台窗口中的命令行执行的程序,文本属性所做的更改可用于为该控制台窗口,只要窗口打开时,即使您的程序将退出。因此,程序应在退出该程序前还原原始的颜色属性。
通过使用 GetConsoleScreenBufferInfo API 函数,您可以获得控制台窗口的文本属性。此函数填充 CONSOLE_SCREEN_BUFFER_INFO 结构包含有关当前输出缓冲区设置的信息的实例。此结构的 wAttribute 参数包含定义文本的前景色和背景颜色的颜色信息。可能的颜色是通过将红色、 绿色和蓝色的组合,可以创建任意颜色组合。
分步示例
// loadTOCNode(2, 'summary');// ]]>
在 Visual Studio.net 或 Visual Studio 2005 中创建一个新的 Visual C# 控制台应用程序项目。
在解决方案资源管理器中,用鼠标右键单击您的项目,单击 添加,然后选择 添加类 将一个新类添加到您的程序。
粘贴下面的代码示例在类中创建的。验证的代码示例将替换所有的现有代码中 class.
OriginalColors = ConsoleInfo.wAttributes; SetConsoleTextAttribute(hConsoleHandle, color);
使用 ResetColor 方法可以重置为原始值在程序开始执行时捕获的控制台窗口的输出缓冲区属性。
SetConsoleTextAttribute(hConsoleHandle, OriginalColors);
分步示例
// loadTOCNode(2, 'summary');// ]]>
在 Visual Studio.net 或 Visual Studio 2005 中创建一个新的 Visual C# 控制台应用程序项目。
在解决方案资源管理器中,用鼠标右键单击您的项目,单击 添加,然后选择 添加类 将一个新类添加到您的程序。
粘贴下面的代码示例在类中创建的。验证的代码示例将替换所有的现有代码中 class.
代码
using System; namespace ConsoleColor { class Class1 { [STAThread] static void Main(string[] args) { Class2 TextChange = new Class2(); Console.WriteLine("Original Colors"); Console.WriteLine("Press Enter to Begin"); Console.ReadLine(); TextChange.TextColor((int)Class2.Foreground.Green + (int)Class2.Foreground.Intensity); Console.WriteLine("THIS TEXT IS GREEN"); Console.WriteLine("Press Enter to change colors again"); Console.ReadLine(); TextChange.TextColor((int)Class2.Foreground.Red + (int)Class2.Foreground.Blue + (int)Class2.Foreground.Intensity); Console.WriteLine("NOW THE TEXT IS PURPLE"); Console.WriteLine("Press Enter to change colors again"); Console.ReadLine(); TextChange.TextColor((int)Class2.Foreground.Blue + (int)Class2.Foreground.Intensity + (int)Class2.Background.Green + (int)Class2.Background.Intensity); Console.WriteLine("NOW THE TEXT IS BLUE AND BACKGROUND OF IT IS GREEN"); Console.WriteLine("Press Enter change everything back to normal"); Console.ReadLine(); TextChange.ResetColor(); Console.WriteLine("Back to Original Colors"); Console.WriteLine("Press Enter to Terminate"); Console.ReadLine(); } } }
有关详细的信息,请访问下面的 Microsoft 网站:
控制台功能
http://msdn2.microsoft.com/en-us/library/ms682073.aspx (http://msdn2.microsoft.com/en-us/library/ms682073.aspx)
有关更多的信息请单击下面文章编号,以查看 Microsoft 知识库中相应的文章:
319257 (http://support.microsoft.com/kb/319257/EN-US/ ) 如何: 清除与 Visual C#.net 控制台窗口
点击这里察看该文章的英文版: 319883
相关文章推荐
- C#更改控制台文本颜色
- python_控制台输出带颜色的文字方法
- C# 输出带颜色文字,用于实时日志输出
- Windows下更改C/C++控制台程序文本输出颜色
- 如何使用 C# 来更改前景颜色和背景颜色,在控制台窗口中的文本的
- C++更改控制台输出颜色
- python_控制台输出带颜色的文字方法
- python_控制台输出带颜色的文字方法
- C# 控制台应用程序输出颜色字体[更正版]
- c windows控制台输出颜色文字
- 更改 windows下控制台 输出的字体颜色(前景色、背景色)和输出位置(转载)
- C# 控制台应用程序输出颜色字体[更正版]
- python_控制台输出带颜色的文字方法
- Python设置控制台输出文字的颜色
- python_控制台输出带颜色的文字方法
- python_控制台输出带颜色的文字方法
- python_控制台输出带颜色的文字方法
- c#在控制台输出彩色文字的方法
- python_控制台输出带颜色的文字方法
- 更改 windows下控制台 输出的字体颜色(前景色、背景色)和输出位置(转载)