【发布时间】:2015-08-01 10:18:51
【问题描述】:
我正在 ncurses 中编写一个应用程序,并且我正在处理垫子中的颜色显示。我在 pad p 中添加了一些文本,颜色属性如下:
if(has_colors())
start_color();
init_pair(0, COLOR_GREEN, COLOR_BLACK);
attron(COLOR_PAIR(0));
while( (ch=fgetc(f)) != EOF){
waddch(p,ch);
}
attroff(COLOR_PAIR(0));
fclose(f);
但是,当我使用prefresh(p,0, 0, 0,0, LINES-1,COLS-1); 显示部分选项卡时,会打印文本而没有任何更改。 (只有背景有点不同,因为我启动了颜色模式)。恐怕当文本从pad复制到屏幕时,它不会复制格式,是吗?如果是这样,有什么办法可以做到这一点?
谢谢!
|||-----编辑------||| 因此,即使我将密钥更改为不同于零的值,它也不起作用。我用这个打印到垫子上:
init_pair(3,COLOR_RED,COLOR_CYAN);
attron(COLOR_PAIR(3));
for (i=0;i<str.length();i++){
waddch(p,str[i]);
}
attroff(COLOR_PAIR(3));
prefresh后面的文字正常显示。
【问题讨论】:
-
这实际上是两个问题,由于没有完整的测试程序,所以没有什么可以回答的。
-
我看不懂,为什么是这两个问题。但无论如何我已经让它工作了,所以你是对的,没有什么可以回答的了。我将粘贴解决方案并关闭问题。
-
我现在正在写解决方案。