更改整个控制台背景颜色(Win32 C ++)
我怎样才能改变整个控制台的背景颜色? 我试过SetConsoleTextAttribute
,它只改变了新文本的背景颜色。
当出现严重错误时,我实际上希望整个控制台变为红色。
感谢所有尝试提供帮助的人。
试试像这样:
system("color c2");
我认为FillConsoleOutputAttribute
函数会做你需要的。 将其设置为控制台的起始坐标,并将nLength
设置为控制台中的字符数( width * length
)。
BOOL WINAPI FillConsoleOutputAttribute(
__in HANDLE hConsoleOutput,
__in WORD wAttribute,
__in DWORD nLength,
__in COORD dwWriteCoord,
__out LPDWORD lpNumberOfAttrsWritten
);
我知道这是一个古老的问题,但这个代码如何:
#include <windows.h>
#include <iostream>
VOID WINAPI SetConsoleColors(WORD attribs);
int main() {
SetConsoleColors(BACKGROUND_BLUE | FOREGROUND_RED | FOREGROUND_INTENSITY);
std::cout << "Hello, world!" << std::endl;
std::cin.get();
return 0;
}
VOID WINAPI SetConsoleColors(WORD attribs) {
HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFOEX cbi;
cbi.cbSize = sizeof(CONSOLE_SCREEN_BUFFER_INFOEX);
GetConsoleScreenBufferInfoEx(hOutput, &cbi);
cbi.wAttributes = attribs;
SetConsoleScreenBufferInfoEx(hOutput, &cbi);
}
据我所知,这个代码应该可以在Windows Vista和更高版本上运行。 顺便说一句,这段代码是基于这篇文章(主要是文章中的资料):http://cecilsunkure.blogspot.fi/2011/12/windows-console-game-set-custom-color.html
链接地址: http://www.djcxy.com/p/87419.html