Draws the specified vector into a given device context.
#include "ltwrappr.h"
virtual L_INT LVectorBase::Paint(hdc, bEraseBkgnd)
Device context.
Flag that indicates whether or not to erase the background rectangle when rendering the vector. Possible values are:
Value | Meaning |
---|---|
TRUE | The background rectangle will be erased when the vector image is rendered to the device context. |
FALSE | The background rectangle will not be erased. |
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
If hDC is NULL, this function will assume that the vector is already attached to a window, and will draw the vector image to the window DC.
The background color used to erase the rectangle where the vector image is rendered can be set with LVectorBase::SetBackgroundColor.
If LVectorBase::Paint is called in response to a WM_PAINT message, hDC should be the paint DC obtained from BeginPaint.
This function will use current camera and current viewport of the vector handle to do the necessary projection into the surface of the DC.
L_INT LVectorBase__PaintExample(HWND hWnd, LVectorBase &Vector)
{
L_INT nRet;
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
HPALETTE hOldPalette = NULL, hPal;
hdc = BeginPaint (hWnd, &ps) ;
GetClientRect(hWnd, &rect);
nRet = Vector.SetViewport(&rect);
if(nRet != SUCCESS)
return nRet;
if (Vector.IsAllocated())
{
// Create the palette that we will use to paint
hPal = Vector.GetPalette();
if( hPal )
{
hOldPalette = ::SelectPalette( hdc, hPal, TRUE );
::RealizePalette( hdc );
}
nRet = Vector.Paint(hdc, TRUE);
if(nRet != SUCCESS)
return nRet;
if (hOldPalette)
{
::SelectPalette (hdc, hOldPalette, FALSE);
DeleteObject(hPal);
}
}
EndPaint (hWnd, &ps) ;
return SUCCESS;
}