ScrollDC function (winuser.h)

The ScrollDC function scrolls a rectangle of bits horizontally and vertically.

Syntax

BOOL ScrollDC(
  [in]  HDC        hDC,
  [in]  int        dx,
  [in]  int        dy,
  [in]  const RECT *lprcScroll,
  [in]  const RECT *lprcClip,
  [in]  HRGN       hrgnUpdate,
  [out] LPRECT     lprcUpdate
);

Parameters

[in] hDC

Type: HDC

Handle to the device context that contains the bits to be scrolled.

[in] dx

Type: int

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

[in] dy

Type: int

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

[in] lprcScroll

Type: const RECT*

Pointer to a RECT structure containing the coordinates of the bits to be scrolled. The only bits affected by the scroll operation are bits in the intersection of this rectangle and the rectangle specified by lprcClip. If lprcScroll is NULL, the entire client area is used.

[in] lprcClip

Type: const RECT*

Pointer to a RECT structure containing the coordinates of the clipping rectangle. The only bits that will be painted are the bits that remain inside this rectangle after the scroll operation has been completed. If lprcClip is NULL, the entire client area is used.

[in] hrgnUpdate

Type: HRGN

Handle to the region uncovered by the scrolling process. ScrollDC defines this region; it is not necessarily a rectangle.

[out] lprcUpdate

Type: LPRECT

Pointer to a RECT structure that receives the coordinates of the rectangle bounding the scrolling update region. This is the largest rectangular area that requires repainting. When the function returns, the values in the structure are in client coordinates, regardless of the mapping mode for the specified device context. This allows applications to use the update region in a call to the InvalidateRgn function, if required.

Return value

Type: BOOL

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks

If the lprcUpdate parameter is NULL, the system does not compute the update rectangle. If both the hrgnUpdate and lprcUpdate parameters are NULL, the system does not compute the update region. If hrgnUpdate is not NULL, the system proceeds as though it contains a valid handle to the region uncovered by the scrolling process (defined by ScrollDC).

When you must scroll the entire client area of a window, use the ScrollWindowEx function.

Requirements

Requirement Value
Minimum supported client Windows Vista [desktop apps only]
Minimum supported server Windows Server 2003 [desktop apps only]
Target Platform Windows
Header winuser.h (include Windows.h)
Library User32.lib
DLL User32.dll
API set ext-ms-win-ntuser-misc-l1-5-0 (introduced in Windows 10, version 10.0.10240)

See also

InvalidateRgn

Other Resources

RECT

Reference

ScrollWindowEx