相关疑难解决方法(0)

将颜色转换为ConsoleColor?

将a转换System.Drawing.Color为类似的最佳方法是什么System.ConsoleColor

c# console colors system.drawing.color

19
推荐指数
3
解决办法
2万
查看次数

C++ 将控制台文本颜色设置为 RGB 值

我想将控制台的文本颜色设置为 RGB 颜色。我创建了一个函数来获取控制台的 ColorTable 并更改其中的颜色,但它不起作用。我不知道如何将文本颜色设置为颜色表中的值,因此我只是更改整个颜色表,但它没有执行任何操作。

void setColor(int r, int g, int b)
{
    COLORREF cr;
    cr = RGB(r, g, b);
    PCONSOLE_SCREEN_BUFFER_INFOEX ci;
    CONSOLE_SCREEN_BUFFER_INFOEX cir;
    ci = ○
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    GetConsoleScreenBufferInfoEx(hConsole , ci);
    cout <<hex<< ci->ColorTable[2];
    for(int i=0;i<16;i++){
            ci->ColorTable[i] = cr;
    }
    SetConsoleScreenBufferInfoEx(hConsole, ci);

    GetConsoleScreenBufferInfoEx(hConsole , ci);

    cout <<endl <<  ci->ColorTable[2];
}
Run Code Online (Sandbox Code Playgroud)

main()多次调用该函数,但每次调用的输出都是相同的,并且颜色不会改变。SetConsoleScreenBufferInfoEx()并且GetConsoleScreenBufferInfoEx()似乎没有做任何事情,ci当它们被调用时保持不变。

我做错了什么?

另外,如果它有效,我假设背景颜色也会改变,因为我改变了整个调色板,那么如何将文本颜色设置为颜色表中的特定值,例如我放入ci->ColorTable[2] = cr;函数changeColor()而不是 for 循环,如何将文本颜色设置为现在存储的颜色ColorTable[2]

c++ winapi console-application

3
推荐指数
1
解决办法
1万
查看次数