39

I only have a basic knowledge of ncurses, and I was unable to find an answer to this question in the man pages.

When you set the foreground and background color for a window, is there a way to fill the whole window with the background color?

2 Answers2

43

Please try bkgd, or wbkgd for specifying a window.

First you have to enable color support with start_color().

And then define color pair. Example:init_pair(1,COLOR_BLUE, COLOR_RED)

The order is pair_number, foreground, background

Finally, set colors: wbkgd(WindowName, COLOR_PAIR(1)).

Community
  • 1
  • 1
Marcin Zaluski
  • 687
  • 5
  • 10
  • 1
    WARNING! Don't forget to use COLOR_PAIR(n) and not simply n. I did and spent 2 days trying to figure out why ncurses was not displaying the spaces in my output. (That should contain the search terms so the next poor soul who does the same thing can figure it out faster!) – Mike Apr 26 '21 at 17:15
1

You can also use wbkgd(stdscr, COLOR_PAIR(1)) to change the main window color.

Emma
  • 27,428
  • 11
  • 44
  • 69
Danilo
  • 41
  • 7