LPaintEffect::EffectBlt

#include "ltwrappr.h"

virtual L_INT LPaintEffect::EffectBlt(nXDest, nYDest, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, uEffect, nSpeed, nCycles, uPass, uMaxPass, uROP=SRCCOPY)

L_INT nXDest;

/* X coordinate of the origin of the destination rectangle */

L_INT nYDest;

/* Y coordinate of the origin of the destination rectangle */

L_INT nWidth;

/* width of the destination rectangle */

L_INT nHeight;

/* height of the destination rectangle */

HDC hdcSrc;

/* handle to the source device context */

L_INT nXSrc;

/* x coordinate of the origin of the source rectangle */

L_INT nYSrc;

/* y coordinate of the origin of the source rectangle */

L_UINT uEffect;

/* effect to apply when painting */

L_INT nSpeed;

/* speed of the wave */

L_INT nCycles;

/* number of cycles or repetitions */

L_UINT uPass;

/* pass number when using a pattern brush */

L_UINT uMaxPass;

/* maximum passes for a pattern brush */

L_UINT32 uROP;

/* windows ROP code for display */

Performs a bit-block transfer of the color data corresponding to a rectangle of pixels from the specified source device context into the class object's associated device context, while applying a special effect.

Parameter

Description

nXDest

X coordinate of the origin of the destination rectangle.

nYDest

Y coordinate of the origin of the destination rectangle.

nWidth

Width of the destination rectangle.

nHeight

Height of the destination rectangle.

hdcSrc

Handle to the source device context.

nXSrc

X coordinate of the origin of the source rectangle.

nYSrc

Y coordinate of the origin of the source rectangle.

uEffect

Effect to apply when painting. For valid values, refer to Effect Types.

nSpeed

Speed of the wave. Valid values are 1 to 256. This parameter is valid only if the uEffect parameter is from the Wave class.

nCycles

Number of cycles or repetitions used to draw the wave. This parameter is valid only if the uEffect parameter is from the Wave class.

uPass

Pass number when using a pattern brush. Use 1 for painting in one pass.

uMaxPass

Maximum passes for a pattern brush. Use 1 for painting in one pass.

uROP

Windows ROP code for display. This parameter takes the same codes as the Windows BitBlt function. For ordinary painting, use SRCCOPY.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

Use this function as a replacement for the Windows BitBlt API function when you want a special painting effect.

Use LPaintEffect::SetEffectParameters to control the properties of the paint effect.

If the uEffect parameter is from the Twirl class, White Turnover class, Turnover class, Replace class, Laser class, Fade Normal class, Fade Black and White class, Fade Color class or Wave Class, the uPass and uMaxPass parameters have no effect.

The nSpeed and nCycles parameters have effect only if the uEffect parameter is from the Wave class.

Required DLLs and Libraries

LTDIS
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.

See Also

Functions:

Class Members

Topics:

Implementing Special Effects

 

Effect Types

Example

L_VOID TestEffect(LBitmapBase& LeadBitmap,HDC hDC)
{
   LPaintEffect LeadPaintEffect;
   EFFECTDLGPARAMS EfxDlgParm;
   HDC hdcSrc;

   LeadPaintEffect.SetBitmap(&LeadBitmap) ;
   LeadPaintEffect.SetDC(hDC) ;

   LeadPaintEffect.GetEffectParameters(&EfxDlgParm) ;

   EfxDlgParm.uDelay = 10;
   EfxDlgParm.bTransparent = TRUE;
   EfxDlgParm.crTransparent = RGB(10,0,255);

   LeadPaintEffect.SetEffectParameters(&EfxDlgParm) ;

   hdcSrc = CreateCompatibleDC(hDC);

   // Paint the image using EffectBlt in 3 steps
   LeadPaintEffect.EffectBlt(0,0,LeadBitmap.GetWidth(),LeadBitmap.GetHeight(),hdcSrc,0,0,
      EFX_EFFECT_WIPE_L_TO_R, 0, 0, 1,3);

   LeadPaintEffect.EffectBlt(0,0,LeadBitmap.GetWidth(),LeadBitmap.GetHeight(),hdcSrc,0,0,
      EFX_EFFECT_WIPE_R_TO_L, 0, 0,2,3);

   LeadPaintEffect.EffectBlt(0,0,LeadBitmap.GetWidth(),LeadBitmap.GetHeight(),hdcSrc,0,0,
      EFX_EFFECT_WIPE_L_TO_R, 0, 0,3,3);

   LeadPaintEffect.SetDC(0) ;
   DeleteDC(hdcSrc);
}

 

/* This example shows how to use LPaintEffect::EffectBlt with wave effect */
L_VOID TestEffect(LBitmapBase& LeadBitmap,HDC hDC)
{
   LPaintEffect LeadPaintEffect; 
   EFFECTDLGPARAMS EfxDlgParm; 
   HDC hdcSrc; 

   LeadPaintEffect.SetBitmap (&LeadBitmap) ; 
   LeadPaintEffect.SetDC (hDC) ; 

   LeadPaintEffect.GetEffectParameters (&EfxDlgParm) ; 

   EfxDlgParm.uDelay = 10; 
   EfxDlgParm.bTransparent = TRUE; 
   EfxDlgParm.crTransparent = RGB(10,0,255); 

   LeadPaintEffect.SetEffectParameters (&EfxDlgParm) ; 

   hdcSrc = CreateCompatibleDC(hDC); 

   // Paint the image using EffectBlt in 3 steps
   LeadPaintEffect.EffectBlt(0,0,LeadBitmap.GetWidth(),LeadBitmap.GetHeight(),hdcSrc,0,0, 
      EFX_EFFECT_WIPE_L_TO_R, 20, 1, 1,3); 


   LeadPaintEffect.SetDC (0) ; 
   DeleteDC(hdcSrc); 
}