C编程在多个窗口上显示颜色不工作
我在Linux上使用ncurses,我创建了两个窗口(winReception和winTransmission),基本上winTransmission是用于在winReception中写入要打印的内容。所以,我想在winReception中以某种颜色打印文本,但它无法正常打印,没有颜色 有人质疑为什么它不起作用吗?我试着改变窗口的颜色,但是它改变了窗口中所有文本的颜色,这不是我想要的 编辑:忘记提到winTransmission不需要更改颜色。只有winReception需要更改颜色 以下是您需要了解我在做什么的代码:C编程在多个窗口上显示颜色不工作,c,colors,ncurses,C,Colors,Ncurses,我在Linux上使用ncurses,我创建了两个窗口(winReception和winTransmission),基本上winTransmission是用于在winReception中写入要打印的内容。所以,我想在winReception中以某种颜色打印文本,但它无法正常打印,没有颜色 有人质疑为什么它不起作用吗?我试着改变窗口的颜色,但是它改变了窗口中所有文本的颜色,这不是我想要的 编辑:忘记提到winTransmission不需要更改颜色。只有winReception需要更改颜色 以下是您需
initscr();
/* WINDOW RECEPTION */
winReception = newwin(27, 0, 0, 0);
/* WINDOW TRANSMISSION */
winTransmission = newwin(8, 0, 27, 0);
if (!has_colors()) {
endwin();
fprintf(stderr, "Error - no color support on this terminal\n");
exit(1);
}
if (start_color() != OK) {
endwin();
fprintf(stderr, "Error - could not initialize colors\n");
exit(2);
}
init_pair(1, COLOR_RED, COLOR_BLACK);
init_pair(2, COLOR_RED, COLOR_GREEN);
attrset(COLOR_PAIR(1));
/* WINDOW RECEPTION */
mvwprintw(winReception, 1, 2, "%s", textinwindow);
wrefresh(winReception);
/* WINDOW TRANSMISSION */
touchwin(winTransmission);
wclear(winTransmission);
wrefresh(winTransmission);
设置颜色属性的唯一位置是
attrset(COLOR_PAIR(1));
但这只适用于stdscr
也许你的意思是
wattrset(winReception, COLOR_PAIR(1));
是的,我这样做了,但是它改变了整个窗口(所有文本)的颜色。但我希望有些行在黑色上用红色写,有些在绿色上用红色写。