Console output is displayed in a console window. An application writes to this display area by writing to a screen buffer which maps the window into a grid of character cells. When a console is first created, a default sized screen buffer is created. This buffer is initially the active screen buffer, the one that is displayed. Additional screen buffers may be created by calling CreateConsoleScreenBuffer, as described above in the section above on getting handles to console output. Use SetConsoleActiveScreenBuffer to change the currently displayed screen buffer. Any of the calls that read from or write to a screen buffer may be used to access active or inactive screen buffers.
There are a number of properties that are associated with a screen buffer and that may be set independently for each screen buffer. This means that changing the active screen buffer may have a dramatic effect on the appearance of the console window. The per screen buffer properties include: screen buffer size, text attributes, window size, window origin; cursor position, appearance, and visibility; and output modes (processed output and wrap at end of line).