BeginBufferedPaint

 

Description

 

Begins a buffered paint operation.

 

C++ Syntax

 

HPAINTBUFFER BeginBufferedPaint(

HDC hdcTarget,

const RECT *prcTarget,

BP_BUFFERFORMAT dwFormat,

BP_PAINTPARAMS *pPaintParams,

HDC *phdc

);

 

PowerBASIC Syntax

 

FUNCTION BeginBufferedPaint ( _

BYVAL hdcTarget AS DWORD, _

BYREF prcTarget AS RECT, _

BYVAL dwFormat AS DWORD, _

BYREF pPaintParams AS BP_PAINTPARAMS, _

BYREF phdc AS DWORD _

) AS DWORD

 

Parameters

 

hdcTarget

 

[in] The handle of the target device context (DC) on which the buffer will be painted.

 

prcTarget

 

[in] A pointer to a RECT structure that specifies the area of the target DC in which to paint.

 

dwFormat

 

[in] A member of the BP_BUFFERFORMAT enumeration that specifies the format of the buffer.

 

pPaintParams

 

[in, opt] A pointer to a BP_PAINTPARAMS structure that defines the paint operation parameters. This value can be NULL.

 

phdc

 

[out] When this function returns, points to the handle of the new device context.

 

Return Value

 

A handle to a buffered paint animation.

 

Remarks

 

A handle to the buffered paint context. If this function fails, the return value is NULL, and phdc is NULL. To get extended error information, call GetLastError.

 

The returned handle is freed when EndBufferedPaint is called.

 

An application should call BufferedPaintInit on the calling thread before calling BeginBufferedPaint, and BufferedPaintUnInit before the thread is terminated. Failure to call BufferedPaintInit may result in degraded performance due to internal data being initialized and destroyed for each buffered paint operation.

 

Function Information

 

Stock implementation

UxTheme.dll

Custom implementation

No

C++ Header

uxtheme.h

PB Header

uxtheme.inc

Import library

None

Minimum oeprating systems

Windows Vista

 

Example

 

C++

 

void BufferedPaint(HDC hdc, const RECT *prcPaint)

 

{

  BP_PAINTPARAMS paintParams = {0};

  paintParams.cbSize = sizeof(paintParams);

 

  HDC hdcBuffer;

  HPAINTBUFFER hBufferedPaint = BeginBufferedPaint(hdc, prcPaint, BPBF_COMPATIBLEBITMAP, &paintParams, &hdcBuffer);

 

  if (hBufferedPaint)

  {

      // Application specific painting code

      AppPaint(hdcBuffer, prcPaint);

      EndBufferedPaint(hBufferedPaint, TRUE);

  }

  else

  {

      // Error occurred, default to unbuffered painting

      AppPaint(hdc, prcPaint);

  }

}

 

PowerBASIC

 

SUB BufferedPaint(BYVAL hdc AS DWORD, BYREF prcPaint AS RECT)

 

 LOCAL paintParams AS BP_PAINTPARAMS

 paintParams.cbSize = SIZEOF(paintParams)

 

 LOCAL hdcBuffer AS DWORD

 LOCAL hBufferedPaint AS DWORD

 hBufferedPaint = BeginBufferedPaint(hdc, prcPaint, %BPBF_COMPATIBLEBITMAP, paintParams, hdcBuffer)

 

 IF hBufferedPaint THEN

    ' // Application specific painting code

    AppPaint(hdcBuffer, prcPaint)

    EndBufferedPaint(hBufferedPaint, %TRUE)

 ELSE

    ' // Error occurred, default to unbuffered painting

    AppPaint(hdc, prcPaint)

 END IF

 

END SUB

 

Valid XHTML 1.0 Transitional