c++ - 可以使用 pdcurses 编辑任何 Windows 终端的调色板吗?

标签 c++ windows colors terminal pdcurses

我是 ASCII 美学的忠实粉丝,从终端创建图形的想法很吸引我。

我在 Windows 环境中使用 pdcurses,我发现了一个非常有趣的属性:init_color。但是,它似乎根本不起作用!不仅我尝试过的每个终端(CMD.exe、ConEmu 和 Console2)的颜色范围都限于 16 种颜色,而且我似乎无法编辑调色板。

我在网上找不到关于这个主题的任何信息。

那么——这有可能吗?如果没有,还有其他选择吗?例如,我知道 ConEmu 有调色板,但我不知道如何从 C++ 程序中告诉它使用什么调色板。

这是我尝试过的代码示例:

#include <curses.h>
int main()
{
    init_color(1, 700, 600, 111);
    initscr();
    noecho();
    if(has_colors() == FALSE)
    {
        endwin();
        printf("Your terminal doesn't support color..!\n");
        return 1;
    }
    init_color(2, 555, 555, 222);
    start_color();
    init_pair(1, 1, 0);
    init_pair(2, 2, 0);
    attron(COLOR_PAIR(1));
    printw("aaaa ");
    attron(COLOR_PAIR(2));
    init_color(12, 700, 600, 111);
    printw("bbbb\n");
    getch();
    endwin();
    return 0;
}

最佳答案

在 PDCurses 3.4 中执行此操作的代码曾经在某些版本的 Windows 中工作,但后来的 Windows(XP Service Pack 3+)破坏了它。但是,如果您从 git 获取最新的 PDCurses 代码,它已更新为适用于当前的 Windows。

顺便说一句,您应该只在 initscr() 之后调用 init_color()

关于c++ - 可以使用 pdcurses 编辑任何 Windows 终端的调色板吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39125240/

相关文章:

c++ - 使用CImg使用线性插值填充颜色

c++ - 从纯抽象基类继承 typedef

windows - Maven 中的 Java_home

c++ - 为什么 "if constexpr"不能用 Visual Studio 2017 15.3 编译?

javascript - 如何使用javascript自动关闭网页?

c++ - 测量时间导致返回值 0 或 0.001

python-3.x - Python 从颜色名称到 RGB

python - 使用 matplotlib/pyplot 混合线条颜色绘制曲线

python - def __init__(self, *args, **kwargs) 在 python 中初始化类

c++ - 监控操作码