C++ 如何获取命令行文本的颜色属性

C++ 如何获取命令行文本的颜色属性,c++,windows,winapi,C++,Windows,Winapi,我把一个游戏制作成命令行游戏,不要杀我,我添加了一些东西来检查命令行文本的颜色,然后用我想要的任何bg颜色求和bg颜色是颜色*16来创建一个粗糙的指向系统 问题是:我如何从一个有选择的文本网格中获取一个字符,然后读取它的颜色,该颜色用于给该字符提供与其他字符不同的背景 #include <iostream> #include <windows.h> enum Color { DARKBLUE = 1, DARKGREEN, DARKTEAL, DARKRED,

我把一个游戏制作成命令行游戏,不要杀我,我添加了一些东西来检查命令行文本的颜色,然后用我想要的任何bg颜色求和bg颜色是颜色*16来创建一个粗糙的指向系统

问题是:我如何从一个有选择的文本网格中获取一个字符,然后读取它的颜色,该颜色用于给该字符提供与其他字符不同的背景

#include <iostream>
#include <windows.h>

enum Color { DARKBLUE = 1, DARKGREEN, DARKTEAL, DARKRED, 
             DARKPINK, DARKYELLOW, GRAY, DARKGRAY, BLUE, 
             GREEN, TEAL, RED, PINK, YELLOW, WHITE};
void SetColor(int c){
    HANDLE hCon = NULL;

        if (hCon == NULL){
            hCon = GetStdHandle(STD_OUTPUT_HANDLE);
            SetConsoleTextAttribute(hCon, c);
    }
}

void AdvSetColor(Color back,Color fore){
    int c;
    c = back * 16 + fore;
    SetColor(c);
}

char sometext[10][10] ={
    {"Lorem ipsum"},
    {"dolor sit am"},
    {"et, consect"},
    {"etur adipis"},
    {"icing elit,"},
    {"sed do eiusm"},
    {"od tempor inc"},
    {"ididunt ut l"},
    {"abore et dol"},
    {"ore magna al"}, //highlight all the words that are broken inbetween the sets
}

你能用一个简短的例子来说明问题,而不是发布你的整个程序吗?你忘了问一个问题。我想你可能能做到。令人恼火的是,你必须玩旗子才能得到你的颜色。还有一个版本。ReadConsoleOutput允许您从屏幕上的特定点读取字符和属性信息。尽管更好的解决方案是从程序中跟踪此状态。从屏幕上阅读通常是个坏主意,因为用户可能会弄乱屏幕,或者其他程序可能会打印到屏幕上。