我知道如何设置它们 (SetConsoleTextAttribute),但没有 GetConsoleTextAttribute 来检索此信息。在未受影响的控制台上,它应该是 int 7。
问题是,当退出设置文本颜色的程序时,它在给定窗口运行的时间内保持不变,我不能假设用户没有根据自己的喜好设置颜色。
最佳答案
wincon.h
的快速 grep 表明 CONSOLE_SCREEN_BUFFER_INFO
有一个 wAttributes
成员,它是 documented as “通过 WriteFile 和 WriteConsole 函数写入屏幕缓冲区的字符的属性,或者通过 ReadFile 和 ReadConsole 函数回显到屏幕缓冲区的字符的属性。”这匹配 the description of SetConsoleTextAttribute
:“设置由 WriteFile 或 WriteConsole 函数写入控制台屏幕缓冲区的字符的属性,或由 ReadFile 或 ReadConsole 函数回显的字符的属性。”该结构由 GetConsoleScreenBufferInfo
返回。
关于c++ - 如何获取当前控制台背景和文本颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8578909/