Compartilhar via


Tamanho do buffer da janela e da 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. Para cada buffer de tela, há uma janela associada que determina o tamanho e a localização da parte retangular do buffer de tela do console exibida na janela do console. A janela de um buffer de tela é definida especificando as coordenadas de células 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 no mesmo valor. O terminal manipula qualquer região de scrollback que seria o equivalente a um console com um tamanho de buffer de tela maior que seu tamanho de janela. Esse conteúdo pertence ao terminal e geralmente não faz mais 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 da janela de um buffer de tela não podem exceder as dimensões correspondentes do buffer de tela do console ou da janela máxima que pode caber na tela com base no tamanho da 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 da tela do console
  • O local atual da janela.
  • O tamanho máximo da janela, considerando 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 por que o tamanho do buffer da tela do console é ignorado.

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

Para alterar o tamanho ou a localizaçao da janela de um buffer de tela, use a função SetConsoleWindowInfo. Essa 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 da tela ativa 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, de forma 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 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 como os dados são exibidos. Por exemplo, um aplicativo pode ajustar a quebra do texto no final da linha quando o número de caracteres por linha muda. Se um aplicativo não habilitar a entrada de janela, ele deverá usar os tamanhos herdados de janela e buffer de tela ou defini-los como 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 Modos de console de baixo nível.