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

时间:2016-08-24 13:52:29

标签: 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;
}

1 个答案:

答案 0 :(得分:1)

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

顺便说一句,你应该只在init_color()之后致电initscr()