Ncurses - przezroczyste tło

· Tech · No AI

Aby uzyskać przezroczyste tło w ncurses należy użyć funkcji use_default_colors``` i ustawić tło na -1. Oto kod:

if(has_colors() == TRUE)
{
start_color();
#if HAVE_USE_DEFAULT_COLORS
if(use_default_colors() == OK)
{
background = -1;
}
#endif
init_pair(1, text, background);
}

Oczywiście pod text i background podstawiasz własne kolory. Tylko jeżeli chcesz mieć przezroczyste tło to background musi mieć wartość -1. No i jeżeli use_default_colors() nie będzie się równać OK to ustawienie -1`` dla tła nic nie da ;-] A, jeszcze jedno. Jeżeli kompilujesz program bez używaniaautomaketo ustaw przed#if HAVE_USE_DEFAULT_COLORS“

#define HAVE_USE_DEFAULT_COLORS 1

bo jeżeli tego nie ustawisz to to co w if nie będzie się wykonywało ;-] Taka mała uwaga jak by ktoś zapomniał ;-p Hm, i żeby ustawić ładnie wszystko to używasz wtedy

bkgd(COLOR_PAIR(1)); // ustawia tło
attron(COLOR_PAIR(1)); // lub wattron dla jakiegoś okna

Koniec.

uptime
8,215 days · since 2004
posts
294 · busiest 2026 (64)
words
~143,065 · ~10 h read
topics
tech 239 · personal 55
langs
en 229 · pl 65
written
211 by hand · 83 AI-assisted
projects
3
build
ca50768 · 2026-06-30