Partilhar via


Tamanho do buffer de janela e tela

O tamanho de um buffer de tela é expresso em termos de uma grade de coordenadas com base em células de caracteres. A largura é o número de células de caracteres em cada linha e a altura é o número de linhas. Associada a cada buffer de tela está uma janela que determina o tamanho e a localização da parte retangular do buffer de tela do console exibida na janela do console. A janela do buffer de tela é definida especificando as coordenadas da célula de caracteres das células superior esquerda e inferior direita do retângulo da janela.

Observação

No mundo das sequências de terminais virtuais , o tamanho da janela e o tamanho do buffer de tela são fixados com o mesmo valor. O terminal lida com qualquer região de scrollback que seria o equivalente a um console com um tamanho de buffer de tela maior do que o tamanho da janela. Esse conteúdo pertence ao terminal e, geralmente, já não faz parte da área endereçável. Para obter mais informações, consulte nossa comparação das funções clássicas do console versus as sequências de terminais virtuais.

Um buffer de tela pode ser de qualquer tamanho, limitado apenas pela memória disponível. As dimensões de uma janela de buffer de tela não podem exceder as dimensões correspondentes do buffer de tela do console ou a janela máxima que pode caber na tela com base no tamanho de fonte atual (controlado exclusivamente pelo usuário).

A função GetConsoleScreenBufferInfo retorna as seguintes informações sobre um buffer de tela e sua janela:

  • O tamanho atual do buffer de tela do console
  • A localização atual da janela
  • O tamanho máximo da janela dado o tamanho atual do buffer de tela, o tamanho da fonte atual e o tamanho da tela

A função GetLargestConsoleWindowSize retorna o tamanho máximo da janela de um console com base na fonte atual e nos tamanhos de tela. Esse tamanho difere do tamanho máximo da janela retornado por GetConsoleScreenBufferInfo , pois o tamanho do buffer da tela do console é ignorado.

Para alterar o tamanho de um buffer de tela, use a função SetConsoleScreenBufferSize . Esta função falhará se qualquer dimensão do tamanho especificado for menor do que a dimensão correspondente da janela do console.

Para alterar o tamanho ou a localização de uma janela do buffer de tela, use a função SetConsoleWindowInfo . Esta função falhará se as coordenadas especificadas do canto da janela excederem os limites do buffer de tela do console ou da tela. Alterar o tamanho da janela do buffer de tela ativo altera o tamanho da janela do console exibida na tela.

Um processo pode alterar o modo de entrada do console para habilitar a entrada da janela para que o processo possa receber entrada quando o usuário alterar o tamanho do buffer da tela do console. Se um aplicativo habilitar a entrada de janela, ele poderá usar GetConsoleScreenBufferInfo para recuperar o tamanho do buffer de janela e tela na inicialização. Essas informações podem ser usadas para determinar a maneira como os dados são exibidos na janela. Se o usuário alterar o tamanho do buffer da tela do console, o aplicativo poderá responder alterando a maneira como os dados são exibidos. Por exemplo, um aplicativo pode ajustar a maneira como o texto é quebrado no final da linha se o número de caracteres por linha mudar. Se um aplicativo não habilitar a entrada de janela, ele deverá usar os tamanhos herdados do buffer de janela e tela ou defini-los para o tamanho desejado durante a inicialização e restaurar os tamanhos herdados na saída. Para obter informações adicionais sobre o modo de entrada de janela, consulte Low-Level Modos de console.