#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.
A handle to the window that represents the Medical Viewer Cell.
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.
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.
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
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.
To start the animation, call the L_DispContainerStartAnimation function.
To stop the animation, call the L_DispContainerStopAnimation function.
To check whether the cell is in an animation phase, call the L_DispContainerIsCellAnimated function.
The user can change or retrieve the animation properties even if the animation has been started.
To retrieve the animation properties of a specific cell, call the L_DispContainerGetAnimationProperties function.
To change the animation properties of a specific cell, call the L_DispContainerSetAnimationProperties function.
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
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);
}