我想在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;
}
答案 0 :(得分:14)
我使用
解决了这个问题wattron(win, COLOR_PAIR(1));
而不是
attron(COLOR_PAIR(1));
wattron
影响给定窗口,而attron
假设您的意思是stdscr
,而不是当前窗口。