Función EnableNonClientDpiScaling (winuser.h)
En las pantallas de valores altos de PPP, permite el escalado automático de la pantalla de las partes del área no cliente de la ventana de nivel superior especificada. Se debe llamar a durante la inicialización de esa ventana.
Sintaxis
BOOL EnableNonClientDpiScaling(
[in] HWND hwnd
);
Parámetros
[in] hwnd
Ventana que debe tener habilitado el escalado automático.
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
Al llamar a esta función, se habilitará el escalado que no sea de cliente para una ventana de nivel superior individual con DPI_AWARENESS_CONTEXT de DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE. Si en su lugar no usa el reconocimiento por ventana y todo el proceso se ejecuta en modo DPI_AWARENESS_PER_MONITOR_AWARE , al llamar a esta función se habilitará el escalado no de cliente en ventanas de nivel superior en el proceso.
Si ninguno de ellos es true o si llama a este método desde cualquier otra ventana, se producirá un error y devolverá un valor de cero.
El escalado no de cliente para las ventanas de nivel superior no está habilitado de forma predeterminada. Debe llamar a esta API para habilitarla para cada ventana de nivel superior individual para la que desea tener la escala de área no cliente automáticamente. Una vez hecho esto, no hay forma de deshabilitarlo. Habilitar el escalado no cliente significa que todas las áreas dibujadas por el sistema para la ventana se escalarán automáticamente en respuesta a los cambios de PPP en la ventana. Esto incluye áreas como la barra de subtítulo, las barras de desplazamiento y la barra de menús. Quiere llamar a EnableNonClientDpiScaling cuando desee que el sistema operativo sea responsable de representar estas áreas automáticamente en el tamaño correcto en función del valor de PPP del monitor.
Llamar a esta función habilita el escalado que no es de cliente solo para ventanas de nivel superior. Las ventanas secundarias no se ven afectadas.
Se debe llamar a esta función desde WM_NCCREATE durante la inicialización de una nueva ventana. Una llamada de ejemplo podría tener este aspecto:
case WM_NCCREATE:
{
EnableNonClientDpiScaling(hwnd);
return (DefWindowProc(hwnd, message, wParam, lParam));
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 10, versión 1607 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2016 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winuser.h (incluir Windows.h) |
Library | User32.lib |
Archivo DLL | User32.dll |