L_EfxGradientFillRect

#include "l_bitmap.h"

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

HDC hDC;

/* handle to the target device context */

RECT L_FAR * 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

Windows 95 / 98 / Me, Windows 2000 / XP, Windows CE.

See Also

Functions:

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

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. */
void TestFunction( HWND hWnd, RECT *pDest )
{
  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 */
  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 */
  /* Restore the old palette */
  if  ( hOurPalette )
    SelectPalette (hdc, hSavedPalette, FALSE);
  /* Release the device context */
  ReleaseDC(hWnd, hdc);
  return;
}