|
Available in LEADTOOLS Imaging Pro, Vector, Document, and Medical Imaging toolkits. |
LPlayBack::GetIndex
#include "ltwrappr.h"
virtual L_INT LPlayBack::GetIndex()
Gets the list index of the current bitmap during animation playback.
Returns
The index of the current bitmap.
Required DLLs and Libraries
|
LTDIS 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: |
|
|
Topics: |
Raster Image Functions: Creating and Maintaining Lists of Images |
|
|
Example
This example uses LPlayBack::GetIndex and LPlayBack::SetIndex to skip
bitmaps during a playback.
L_INT LPlayBack__GetIndexExample(HWND hWnd, L_TCHAR *pszFileName)
{
L_INT nRet;
L_UINT uState; /* Next state in the playback */
RECT rcUpdate; /* Source clipping rectangle used in playback */
RECT rcDisplay; /* Display rectangle used in playback */
HDC hdc; /* Device context of the current window */
L_UINT uIndex = 0; /* Current index to the bitmap list */
L_UINT uCount = 0; /* Number of bitmaps in the list */
LBitmapBase TargetBitmap;
LBitmapList BitmapList;
LPlayBack PlayBack; /* Animation playback */
/* Create the bitmap list from the input file (GIF or AVI) */
nRet = BitmapList.Load (pszFileName);
if(nRet != SUCCESS)
return nRet;
/* Get a copy of the first image's bitmap handle */
TargetBitmap = BitmapList[0];
/* Use the client area as the display rectangle */
GetClientRect(hWnd,&rcDisplay);
/* Get the number of bitmaps in the list */
uCount = BitmapList.GetItemsCount();
/* Create and run the playback */
nRet = PlayBack.Create(&TargetBitmap, &BitmapList);
if(nRet != SUCCESS)
return nRet;
do
{
uState = PlayBack.Process();
switch(uState)
{
case PLAYSTATE_PRERENDER:
uIndex = PlayBack.GetIndex();
nRet = PlayBack.SetIndex( ++uIndex);
if(nRet != SUCCESS)
return nRet;
break;
case PLAYSTATE_POSTRENDER:
nRet = PlayBack.GetUpdateRect(&rcUpdate, TRUE);
if(nRet != SUCCESS)
return nRet;
hdc = GetDC(hWnd);
nRet = PlayBack.GetBitmap()->SetClipSrcRect(&rcUpdate);
if(nRet != SUCCESS)
return nRet;
nRet = PlayBack.GetBitmap()->SetDstRect(&rcDisplay);
if(nRet != SUCCESS)
return nRet;
nRet = PlayBack.GetBitmap()->SetClipDstRect(&rcDisplay);
if(nRet != SUCCESS)
return nRet;
PlayBack.GetBitmap()->Paint()->SetDC(hdc);
PlayBack.GetBitmap()->CreatePaintPalette (hdc);
nRet = PlayBack.GetBitmap()->Paint()->PaintDC();
if(nRet != SUCCESS)
return nRet;
ReleaseDC(hWnd, hdc);
break;
}
} while(uIndex < uCount);
return SUCCESS;
}