ScrollWindowEx

This function scrolls the content of the specified window’s client area.

At a Glance

Header file: Winuser.h
Windows CE versions: 1.0 and later

Syntax

int ScrollWindowEx( HWND hWnd, int dx, int dy, const RECT *prcScroll,
const
RECT *prcClip, HRGN hrgnUpdate, LPRECT prcUpdate, UINT flags);

Parameters

hWnd

Handle to the window where the client area is to be scrolled.

dx

Specifies the amount, in device units, of horizontal scrolling. This parameter must be a negative value to scroll to the left.

dy

Specifies the amount, in device units, of vertical scrolling. This parameter must be a negative value to scroll up.

prcScroll

Pointer to the RECT structure specifying the portion of the client area to be scrolled. If this parameter is NULL, the entire client area is scrolled.

prcClip

Pointer to the RECT structure containing the coordinates of the clipping rectangle. Only device bits within the clipping rectangle are affected. Bits scrolled from the outside of the rectangle to the inside are painted; bits scrolled from the inside of the rectangle to the outside are not painted.

hrgnUpdate

Handle to the region that is modified to hold the region invalidated by scrolling. This parameter may be NULL.

prcUpdate

Pointer to the RECT structure receiving the boundaries of the rectangle invalidated by scrolling. This parameter may be NULL.

flags

Specifies flags that control scrolling. This parameter can be one of the following values:

Value Description
SW_ERASE Erases the newly invalidated region by sending a WM_ERASEBKGND message to the window when specified with the SW_INVALIDATE flag.
SW_INVALIDATE Invalidates the region identified by the hrgnUpdate parameter after scrolling.

Return Values

COMPLEXREGION indicates that the region consists of more than one rectangle. ERROR indicates that an error occurred. NULLREGION indicates that the region is empty. SIMPLEREGION indicates that the region is a single rectangle. To get extended error information, call GetLastError.

Remarks

Only one of the dx and dy parameters can be nonzero.

If the SW_INVALIDATE and SW_ERASE flags are not specified, ScrollWindowEx does not invalidate the area that is scrolled from. If either of these flags is set, ScrollWindowEx invalidates this area. The area is not updated until the application calls the UpdateWindow function or retrieves the WM_PAINT message from the application queue.

If the window has the WS_CLIPCHILDREN style, the returned areas specified by hrgnUpdate and prcUpdate represent the total area of the scrolled window that must be updated, including any areas in child windows that need updating.

All input and output coordinates (for prcScroll, prcClip, prcUpdate, and hrgnUpdate) are determined as client coordinates, regardless of whether the window has the CS_OWNDC or CS_CLASSDC class style.

See Also

RECT, ScrollDC, UpdateWindow, DeferWindowPos