winuser.h


ScrollWindow

La función ScrollWindow desplaza el contenido del área de cliente de la ventana especificada. Esta función existe por compatibilidad con versiones anteriores. Para aplicaciones nuevas, usar la función ScrollWindowEx.

Sintaxis

BOOL ScrollWindow(
    HWND hWnd,              // manipulador de ventana a desplazar
    int XAmount,            // cantidad de desplazamiento horizontal
    int YAmount,            // cantidad de desplazamiento vertical
    CONST RECT *lpRect,     // dirección de estructura con rectángulo de desplazamiento
    CONST RECT *lpClipRect  // dirección de estructura con rectángulo de recorte
   );

Parámetros

hWnd: identifica la ventana cuya área de cliente debe ser desplazada.

XAmount: especifica la cantidad, en unidades de dispositivo, de desplazamiento horizontal. Si la ventana a desplazar tiene el estilo CS_OWNDC o CS_CLASSDC, entonces este parámetro usa unidades lógicas en lugar de unidades de dispositivo. Este parámetro debe ser un valor negativo para desplazar el contenido de la ventana hacia la izquierda.

YAmount: especifica la cantidad, en unidades de dispositivo, de desplazamiento vertical. Si la ventana a desplazar tiene el estilo CS_OWNDC o CS_CLASSDC, entonces este parámetro usa unidades lógicas en lugar de unidades de dispositivo. Este parámetro debe ser un valor negativo para desplazar el contenido de la ventana hacia arriba.

lpRect: apunta a la estructura RECT que especifica la porción del área de cliente a desplazar. Si este parámetro es NULL, se desplaza el área de cliente entera.

lpClipRect: apunta a la estructura RECT que contiene las coordenadas del rectángulo de recorte. Sólo aquellos bits del dispositivo dentro del rectángulo de recorte se verán afectados. Los bits desplazados desde fuera del rectángulo a su interior serán pintados; los bits desplazados desde el interior del rectángulo al exterior, no.

Valor de retorno

Si la función tiene éxito, el valor de retorno es distinto de cero.

Si falla, el valor de retorno es cero. Para conseguir más información, se puede llamar a GetLastError.

Observaciones

Si el caret está en la ventana que se va a desplazar, ScrollWindow lo oculta automáticamente para evitar que sea borrado y lo restaura después de que el desplazamiento haya termiando. La posición del caret se ajusta adecuadamente.

El área no cubierta por ScrollWindow no se pinta de nuevo, pero es combinada dentro de la región de actualización de la ventana. La aplicación recibirá un mensaje WM_PAINT notificando que esa región debe ser repintada. Para repintar el área no cubierta al mismo tiempo que se realiza la acción de desplazamiento, llamar a la función UpdateWindow inmediatamente después de llamar a ScrollWindow.

Si el parámetro lpRect es NULL, las posiciones de cualquier ventana hija dentro de la ventana son desplazadas en la cantidad especificada por los parámetros XAmount y YAmount; las áreas no válidas (no pintadas) de la ventana también son desplazadas. ScrollWindow es más rápido cuando lpRect es NULL.

Si lpRect no es NULL, las posiciones de las ventanas hijas no cambian y las áreas no válidas de la ventana no son desplazadas. Para evitar problemas de actualización cuando lpRect no es NULL, llamar a UpdateWindow pra repuntar la ventana antes de llamar a ScrollWindow.