L_EfxGradientFillRect

#include "l_bitmap.h"

L_LTEFX_API L_INT L_EfxGradientFillRect(hDC, pRect, uStyle, crStart, crEnd, uSteps)

HDC hDC;

/* handle to the target device context */

RECT * pRect;

/* pointer to the display rectangle */

L_UINT uStyle;

/* gradient style */

COLORREF crStart;

/* starting color */

COLORREF crEnd;

/* ending color */

L_UINT uSteps;

/* number of gradient color steps */

Draws a rectangle into the target device context, and then fills the rectangle with a gradient from the specified starting color to the specified ending color.

Parameter

Description

hDC

Handle to the target device context.

pRect

Pointer to the display destination rectangle.

uStyle

Gradient style. For valid values, refer to Effect Gradient Styles.

crStart

COLORREF value that specifies the starting color.

crEnd

COLORREF value that specifies the ending color.

uSteps

Number of gradient color steps. Valid values are 2 to 256.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Required DLLs and Libraries

LTEFX

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.

Platforms

Win32, x64.

See Also

Functions:

L_EfxDraw3dShape, L_EfxDraw3dText, L_EfxDrawFrame, L_EfxDrawRotated3dText, L_EfxEffectBlt, L_EfxPaintBitmap, L_EfxPaintTransition, L_EfxPatternFillRect. L_EfxTileRect

Topics:

Implementing Special Effects

 

Using Color Values in LEADTOOLS

Example

This example shows the minimum requirements for using the L_EfxGradientFillRect function to draw and fill a rectangle with a color gradient.

 L_INT EfxGradientFillRectExample(HWND    hWnd,RECT*   pDest)
{
  L_INT nRet;
  HDC       hdc; /* Device context for the current window */
  HPALETTE  hSavedPalette = NULL; /* Temporary copy of the current system palette */
  HPALETTE  hOurPalette = NULL;  /* The palette that we will use to paint */
  L_INT     nBitsPerPixel;

  /* Get the device context */
  hdc = GetDC (hWnd);
  /* Check the device to see if we need a palette */
  nBitsPerPixel = GetDeviceCaps( hdc, BITSPIXEL ) * GetDeviceCaps ( hdc, PLANES );
  if ( nBitsPerPixel <=8 )
  {
    hOurPalette = (HPALETTE)GetStockObject (DEFAULT_PALETTE);
    hSavedPalette = SelectPalette (hdc, hOurPalette, FALSE);
    /* Realize our palette */
    RealizePalette (hdc); 
  }
  /* Draw the gradient filled rectangle */
  nRet = L_EfxGradientFillRect(hdc,                       /* device context */
                        pDest,                     /* destination rectangle */
                        EFX_GRADIENT_ELLIPSE_TO_C, /* out to center */
                        RGB ( 255,0,0 ),           /* starting color, red */
                        RGB ( 0,0,255 ),           /* ending color, blue */
                        12 );                      /* gradient color steps */
  if(nRet != SUCCESS)
     return nRet;

  /* Restore the old palette */
  if  ( hOurPalette )
    SelectPalette (hdc, hSavedPalette, FALSE);
  /* Release the device context */
  ReleaseDC(hWnd, hdc);
   return SUCCESS;
}