Tamaño de búfer de ventana y pantalla
El tamaño de un búfer de pantalla se expresa en términos de una cuadrícula de coordenadas basada en celdas de caracteres. El ancho es el número de celdas de caracteres de cada fila y el alto es el número de filas. Asociada a cada búfer de pantalla hay una ventana que determina el tamaño y la posición de la porción rectangular del búfer de pantalla de la consola que se muestra en la ventana de la consola. La ventana de un búfer de pantalla se define especificando las coordenadas de celda de carácter de las celdas superior izquierda e inferior derecha del rectángulo de la ventana.
Nota:
En el mundo de las secuencias de terminal virtual, el tamaño de la ventana y el tamaño del búfer de pantalla se fijan en el mismo valor. El terminal controla cualquier región de desplazamiento que sea el equivalente de una consola con un tamaño de búfer de pantalla mayor que su tamaño de ventana. Ese contenido pertenece al terminal y, por lo general, ya no forma parte del área direccionable. Para obtener más información, consulte nuestra comparación de las funciones de consola clásica y las secuencias de terminal virtual.
Un búfer de pantalla puede tener cualquier tamaño, limitado solo por la memoria disponible. Las dimensiones de una ventana del búfer de pantalla no pueden superar las dimensiones correspondientes del búfer de pantalla de la consola o la ventana máxima que puede caber en la pantalla en función del tamaño de fuente actual (controlado exclusivamente por el usuario).
La función GetConsoleScreenBufferInfo devuelve la siguiente información sobre un búfer de pantalla y su ventana:
- El tamaño actual del búfer de pantalla de la consola
- La ubicación actual de la ventana
- El tamaño máximo de la ventana, dado el tamaño actual del búfer de pantalla, el tamaño de fuente actual y el tamaño de pantalla
La función GetLargestConsoleWindowSize devuelve el tamaño máximo de la ventana de una consola en función de los tamaños de fuente y pantalla actuales. Este tamaño difiere del tamaño máximo de ventana devuelto por GetConsoleScreenBufferInfo en que se omite el tamaño del búfer de pantalla de la consola.
Para cambiar el tamaño de un búfer de pantalla, use la función SetConsoleScreenBufferSize. Esta función produce un error si alguna de las dimensiones del tamaño especificado es menor que la dimensión correspondiente de la ventana de la consola.
Para cambiar el tamaño o la ubicación de la ventana de un búfer de pantalla, use la función SetConsoleWindowInfo. Esta función produce un error si las coordenadas de la esquina de ventana especificadas superan los límites del búfer de pantalla de la consola o la pantalla. Cambiar el tamaño de la ventana del búfer de pantalla activo cambia el tamaño de la ventana de consola que se muestra en la pantalla.
Un proceso puede cambiar el modo de entrada de su consola para habilitar la entrada de ventana para que el proceso pueda recibir entradas cuando el usuario cambia el tamaño del búfer de pantalla de la consola. Si una aplicación habilita la entrada de ventana, puede usar GetConsoleScreenBufferInfo para recuperar el tamaño de búfer de ventana y pantalla en el inicio. Esta información se puede usar para determinar la forma en que se muestran los datos en la ventana. Si el usuario cambia el tamaño del búfer de pantalla de la consola, la aplicación puede responder cambiando la forma en que se muestran los datos. Por ejemplo, una aplicación puede ajustar la forma en que el texto se ajusta al final de la línea si cambia el número de caracteres por fila. Si una aplicación no habilita la entrada de ventana, debe usar los tamaños heredados de ventana y búfer de pantalla, o bien establecerlos en el tamaño deseado durante el inicio y restaurar los tamaños heredados al salir. Para obtener más información sobre el modo de entrada de ventana, consulte Modos de consola de bajo nivel.