为什么这些文字没有被ncurses着色?

时间:2014-02-19 16:53:32

标签: c++ colors ncurses

我想在ncurses中创建一个窗口,用一个框包围它,并在其中写一些彩色文本。

当我尝试在标准窗口中制作简单的彩色文本时,它可以很好地工作,但是当我尝试将它放在一个新窗口时,文本在黑色上显示为白色(即默认值)

这是我尝试过的代码。为什么它会起作用?

#include <ncurses.h>

int main(int argc, char *argv[])
{
    initscreen();
    WINDOW * win = newwin(8,15,1,1);
    box(win,0,0);
    start_color();
    init_pair(1, COLOR_BLACK, COLOR_RED);
    attron(COLOR_PAIR(1));
    mvwprintw(win,1,1,"colored text");
    wrefresh(win);
    getch();
    return 0;
}

1 个答案:

答案 0 :(得分:14)

我使用

解决了这个问题
wattron(win, COLOR_PAIR(1));

而不是

attron(COLOR_PAIR(1));

wattron影响给定窗口,而attron假设您的意思是stdscr,而不是当前窗口。