L_DispContainerSetAnimationStartedCallBack

#include "l_bitmap.h"

L_LTIVW_API L_INT EXT_FUNCTION L_DispContainerSetAnimationStartedCallBack(hCellWnd, pfnCallBack, pUserData)

HWND hCellWnd;

/* handle to the cell window */

DISPCONTAINERANIMATIONSTARTEDCALLBACK pfnCallBack;

/* callback function */

LPVOID pUserData;

/* pointer to more parameters for the callback */

Sets a callback function, which will be fired if the control animation has been started.

Parameter

Description

hCellWnd

A handle to the window that represents the Medical Viewer Cell.

pfnCallBack

Pointer to a callback function, which will be fired every time the animation, has been started using L_DispContainerStartAnimation. The callback function must adhere to the function prototype described in DISPCONTAINERANIMATIONSTARTEDCALLBACK.

pUserData

Void pointer that you can use to pass one or more additional parameters that the callback function needs.

 

To use this feature, assign a value to a variable or create a structure that contains as many fields as you need. Then, in this parameter, pass the address of the variable or structure, casting it to L_VOID *. The callback function, which receives the address in its own pUserData parameter, can cast it to a pointer of the appropriate data type to access your variable or structure.

 

If the additional parameters are not needed, you can pass NULL in this parameter.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

This function will set the current animation started callback; to get the current animation started callback call the L_DispContainerGetAnimationStartedCallBack function.

The cell(s) must contain multiple frames.

Required DLLs and Libraries

LTIVW

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 2000 /XP/Vista.

See Also

Functions:

L_DispContainerGetAnimationStartedCallBack, L_DispContainerGetAnimationStoppedCallBack, L_DispContainerSetAnimationStoppedCallBack, L_DispContainerSetAnimationProperties, L_DispContainerGetAnimationProperties, L_DispContainerIsCellAnimated, L_DispContainerStopAnimation, L_DispContainerStartAnimation, L_DispContainerCreate, L_DispContainerRemoveCell, L_DispContainerInsertCell, L_DispContainerGetCellCount, L_DispContainerGetCellWindowHandle, L_DispContainerSetCellTag, L_DispContainerSetCellProperties, L_DispContainerGetCellProperties, L_DispContainerRepositionCell, L_DispContainerGetCellPosition, L_DispContainerSetCellBitmapList, L_DispContainerGetCellBitmapList, L_DispContainerGetCellBounds, L_DispContainerSelectCell, L_DispContainerIsCellSelected, L_DispContainerIsCellFrozen

Topics:

Implementing Animation

 

Image Viewer Functions: Implementing Animation

Example

This example notifies the user when the animation has started or stopped using the AtartAnimation and StopAnimation procedures.

#if defined LEADTOOLS_V17_OR_LATER

#if defined (LEADTOOLS_V16_OR_LATER)

L_INT EXT_CALLBACK AnimationStartedCallBack(HWND hCellWnd,
                                            L_INT    nCellIndex,
                                            L_VOID * pAnimationStartedUserData)
{
   UNREFERENCED_PARAMETER(nCellIndex);
   UNREFERENCED_PARAMETER(pAnimationStartedUserData);
   UNREFERENCED_PARAMETER(hCellWnd);

   MessageBox(NULL, TEXT("Animation started"), TEXT("Animation call Backs"), MB_OK);
   return SUCCESS;
}

L_INT EXT_CALLBACK AnimationStoppedCallBack(HWND hCellWnd,
                                            L_INT    nCellIndex, 
                                            L_VOID * pAnimationStoppedUserData)
{
   UNREFERENCED_PARAMETER(nCellIndex);
   UNREFERENCED_PARAMETER(pAnimationStoppedUserData);
   UNREFERENCED_PARAMETER(hCellWnd);

   MessageBox(NULL, TEXT("Animation stopped"), TEXT("Animation call Backs"), MB_OK);
   return SUCCESS;
}

L_INT DispContainerAnimationCallbacksExample(HDISPCONTAINER hCon)
{
   DISPCONTAINERANIMATIONSTOPPEDCALLBACK oldAnimationStoppedCallback;
   DISPCONTAINERANIMATIONSTARTEDCALLBACK oldAnimationStartedCallback;
   L_VOID * oldAnimationStoppedUserData;
   L_VOID * oldAnimationStartedUserData;

   if (L_DispContainerGetCellCount(hCon, 0) == 0)
   {
      MessageBox(NULL, TEXT("you must at least have one cell added to the viewer"), TEXT("No Cell attached"), MB_OK);
      return FAILURE;
   }

   HWND hCellWnd = L_DispContainerGetCellWindowHandle(hCon, 0, 0);

   L_DispContainerGetAnimationStoppedCallBack(hCellWnd, &oldAnimationStoppedCallback, &oldAnimationStoppedUserData);

   L_DispContainerSetAnimationStoppedCallBack(hCellWnd, AnimationStoppedCallBack, NULL);

   L_DispContainerGetAnimationStartedCallBack(hCellWnd, &oldAnimationStartedCallback, &oldAnimationStartedUserData);

   L_DispContainerSetAnimationStartedCallBack(hCellWnd, AnimationStartedCallBack, NULL);

   return SUCCESS;
}

L_VOID StartAnimation(HDISPCONTAINER hCon)
{
   if (L_DispContainerGetCellCount(hCon, 0) == 0)
   {
      MessageBox(NULL, TEXT("you must at least have one cell added to the viewer"), TEXT("No Cell attached"), MB_OK);
      return;
   }

   HWND hCellWnd = L_DispContainerGetCellWindowHandle(hCon, 0, 0);

   L_DispContainerStartAnimation(hCellWnd, 0, -1, FALSE, 0);
}

L_VOID StopAnimation(HDISPCONTAINER hCon)
{
   if (L_DispContainerGetCellCount(hCon, 0) == 0)
   {
      MessageBox(NULL, TEXT("you must at least have one cell added to the viewer"), TEXT("No Cell attached"), MB_OK);
      return;
   }

   HWND hCellWnd = L_DispContainerGetCellWindowHandle(hCon, 0, 0);

   L_DispContainerStopAnimation(hCellWnd, 0);
}
#endif

#else




#if defined (LEADTOOLS_V16_OR_LATER)

L_INT EXT_CALLBACK AnimationStartedCallBack(L_INT    nCellIndex,
                                            L_VOID * pAnimationStartedUserData)
{
   UNREFERENCED_PARAMETER(nCellIndex);
   UNREFERENCED_PARAMETER(pAnimationStartedUserData);

   MessageBox(NULL, TEXT("Animation started"), TEXT("Animation call Backs"), MB_OK);
   return SUCCESS;
}

L_INT EXT_CALLBACK AnimationStoppedCallBack(L_INT    nCellIndex, 
                                            L_VOID * pAnimationStoppedUserData)
{
   UNREFERENCED_PARAMETER(nCellIndex);
   UNREFERENCED_PARAMETER(pAnimationStoppedUserData);

   MessageBox(NULL, TEXT("Animation stopped"), TEXT("Animation call Backs"), MB_OK);
   return SUCCESS;
}

L_INT DispContainerAnimationCallbacksExample(HDISPCONTAINER hCon)
{
   DISPCONTAINERANIMATIONSTOPPEDCALLBACK oldAnimationStoppedCallback;
   DISPCONTAINERANIMATIONSTARTEDCALLBACK oldAnimationStartedCallback;
   L_VOID * oldAnimationStoppedUserData;
   L_VOID * oldAnimationStartedUserData;

   L_DispContainerGetAnimationStoppedCallBack(hCon, &oldAnimationStoppedCallback, &oldAnimationStoppedUserData);

   L_DispContainerSetAnimationStoppedCallBack(hCon, AnimationStoppedCallBack, NULL);

   L_DispContainerGetAnimationStartedCallBack(hCon, &oldAnimationStartedCallback, &oldAnimationStartedUserData);

   L_DispContainerSetAnimationStartedCallBack(hCon, AnimationStartedCallBack, NULL);

   return SUCCESS;
}

L_VOID StartAnimation(HDISPCONTAINER hCon)
{
   L_DispContainerStartAnimation(hCon, 0, 0, -1, FALSE, 0);
}

L_VOID StopAnimation(HDISPCONTAINER hCon)
{
   L_DispContainerStopAnimation(hCon, 0, 0);
}
#endif

#endif