无论我设置什么颜色,ncurses程序都会在黑色上打印白色

时间:2015-07-04 03:08:21

标签: ncurses curses

我正在写一个基于ncurses的文本应用程序。我有一个名为colorPlot的函数:

void colorPlot(int x, int y, int foregroundColor, int backgroundColor, char plotChar)
{
    init_pair(0, foregroundColor, backgroundColor);
    attrset(COLOR_PAIR(0));
    mvaddch(y, x, plotChar);
}

但每当我尝试在我的主要功能中调用它时:

int main(void) {
    initscr();
    start_color();

    colorPlot(1, 1, COLOR_RED, COLOR_WHITE, '@');

    refresh();

    getch();

    endwin();
}

它只打印黑底白字。为什么不打印红白色?

1 个答案:

答案 0 :(得分:1)

颜色对0(参见start_color手册)保留:

  

颜色对0是特殊的;它表示“没有颜色”。

     

假设颜色对0在黑色上是白色的,但是   实际上终端在颜色之前实现了什么   已初始化。它不能被应用程序修改。