Función SetConsoleWindowInfo
Importante
En este documento se describe funcionalidad de la plataforma de consola que ya no forma parte de nuestra hoja de ruta del ecosistema. No se recomienda usar este contenido en nuevos productos, pero seguiremos admitiendo los usos existentes en un futuro indefinido. Nuestra solución moderna preferida se centra en secuencias de terminal virtual para lograr la máxima compatibilidad en escenarios multiplataforma. Puede encontrar más información sobre esta decisión de diseño en nuestro documento de Comparación de consola clásica y terminal virtual.
Establece el tamaño y la posición actuales de la ventana del búfer de pantalla de la consola.
Sintaxis
BOOL WINAPI SetConsoleWindowInfo(
_In_ HANDLE hConsoleOutput,
_In_ BOOL bAbsolute,
_In_ const SMALL_RECT *lpConsoleWindow
);
Parámetros
hConsoleOutput [in]
Identificador del búfer de pantalla de la consola. El identificador debe tener derecho de acceso de GENERIC_READ. Para obtener más información, consulte Seguridad y derechos de acceso del búfer de la consola.
bAbsolute [in]
Si este parámetro es TRUE, las coordenadas especifican las nuevas esquinas superior izquierda e inferior derecha de la ventana. Si es FALSE, las coordenadas son relativas a las coordenadas actuales de la esquina de ventana.
lpConsoleWindow [in]
Un puntero a una estructura SMALL_RECT que especifica las nuevas esquinas superior izquierda e inferior derecha de la ventana.
Valor devuelto
Si la función se realiza correctamente, el valor devuelto es distinto de cero.
Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.
Comentarios
Se produce un error en la función si el rectángulo de ventana especificado se extiende más allá de los límites del búfer de pantalla de la consola. Esto significa que los miembros Top y Left del rectángulo lpConsoleWindow (o las coordenadas superior e izquierda calculadas, si bAbsolute es FALSE) no pueden ser inferiores a cero. Del mismo modo, los miembros Bottom y Right (o las coordenadas inferior y derecha calculadas) no pueden ser mayores que (altura del búfer de pantalla – 1) y (ancho del búfer de pantalla – 1), respectivamente. La función también produce un error si el miembro Right (o coordenada derecha calculada) es menor o igual que el miembro Left (o coordenada izquierda calculada) o si el miembro Bottom (o coordenada inferior calculada) es menor o igual que el miembro Top (o coordenada superior calculada).
En el caso de las consolas con más de un búfer de pantalla, cambiar la ubicación de la ventana de un búfer de pantalla no afecta a las ubicaciones de ventana de los otros búferes de pantalla.
Para determinar el tamaño actual y la posición de la ventana de un búfer de pantalla, utilice la función GetConsoleScreenBufferInfo. Esta función también devuelve 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 ventana dados los tamaños de fuente y pantalla actuales, pero no tiene en cuenta el tamaño del búfer de pantalla de la consola.
SetConsoleWindowInfo se puede usar para desplazar el contenido del búfer de pantalla de la consola cambiando la posición del rectángulo de ventana sin cambiar su tamaño.
Sugerencia
Esta API no se recomienda y no tiene un equivalente de terminal virtual. Esta decisión alinea intencionadamente la plataforma Windows con otros sistemas operativos en los que se concede al usuario control total sobre esta opción de presentación. Es posible que las aplicaciones que se comunican remotamente a través de utilidades multiplataforma y transportes, como SSH, no funcionen según lo previsto si se usa esta API.
Ejemplos
Para ver un ejemplo, consulte Desplazamiento por la ventana de un búfer de pantalla.
Requisitos
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Encabezado | ConsoleApi2.h (a través de WinCon.h, incluido Windows.h) |
Biblioteca | Kernel32.lib |
Archivo DLL | Kernel32.dll |