Available in LEADTOOLS Medical Imaging toolkits. |
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.
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
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
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