L_DispContainerSetAnimationStartedCallBack

#include "l_bitmap.h"

L_LTIVW_API L_INT EXT_FUNCTION L_DispContainerSetAnimationStartedCallBack(hCellWnd, pfnCallBack, pUserData)

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

Parameters

L_HWND hCellWnd

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

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

LPVOID 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

Value Meaning
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

Platforms

The toolkit comes in Win32 and x64 editions that can support development of software applications for any of the following environments:

Windows 10

Windows 8

Windows 7

Windows Vista

Windows XP

Windows 2000

See Also

Functions

Topics

Example

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

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); 
} 

Help Version 20.0.2020.4.2
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Medical Image Viewer C API Help