ncurses透明控制台背景

时间:2010-03-08 17:51:43

标签: c ncurses

我的控制台启用了透明度,当我运行其他ncurses应用程序时,我看到背景保持透明。我正在尝试让我的应用保持透明度而不是应用深黑色不透明背景。

这就是我到目前为止所做的事情

start_color();
init_pair(1, COLOR_GREEN, COLOR_BLACK);

attron(COLOR_PAIR(1));
mvprintw(10,10, "Hello");

refresh();
attroff(COLOR_PAIR(1));

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:3)

如果您的应用程序调用{​​{3}},ncurses(和use_default_colors)会根据ECMA-48 SGR 39和49“默认颜色”提供扩展名。执行此操作时,ncurses会避免显式着色前景和/或背景颜色与终端颜色假设匹配的单元格。

还有一个附加功能assume_default_colors可用于改善终端(例如)在白色背景上使用黑色文字的默认颜色功能。

您使用的大多数具有色彩功能的终端都支持SGR 39/49代码,因此该功能大部分时间都可以使用。

进一步阅读: