Gets a callback function that is called every time the user changes the active sub-cell.
#include "ltivw.h"
L_LTIVW_API L_INT EXT_FUNCTION L_DispContainerGetActiveSubCellChangedCallBack (hCellWnd, ppfnCallBack, ppUserData)
A handle to the window that represents the Medical Viewer Cell.
Pointer to a pointer to a callback function to be updated with the last active sub-cell changed callback function set using L_DispContainerGetActiveSubCellChangedCallBack.
Void pointer to be updated with the value of user defined data associated with the status callback. If you are not interested in the user-defined data, pass NULL for this parameter.
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
This function gets the active sub-cell changed callback. To set the active sub-cell changed callback use L_DispContainerSetActiveSubCellChangedCallBack.
This example will link the active sub-cell of the first cell to the second cell and vice versa.
L_INT EXT_FUNCTION ActiveSubCellChangedCallBack(HWND hCellWnd,
L_INT nCellIndex,
L_INT nSubCellIndex,
L_INT nPreviousSubCellIndex,
L_VOID * pUserData)
{
UNREFERENCED_PARAMETER(nPreviousSubCellIndex);
HDISPCONTAINER hCon = (HDISPCONTAINER)pUserData;
UNREFERENCED_PARAMETER(pUserData);
DISPSTACKACTIONPROPS ActionProperties;
DISPCELLPROPERTIES CellProp;
CellProp.uStructSize = sizeof(DISPCELLPROPERTIES);
CellProp.uMask = DCCELLPF_ROWS | DCCELLPF_COLS;
L_INT nIndex = (nCellIndex == 1) ? 0 : 1;
hCellWnd = L_DispContainerGetCellWindowHandle(hCon, nIndex, 0);
ActionProperties.DispContainerActionProps.uStructSize = sizeof(DISPSTACKACTIONPROPS);
L_DispContainerGetActionProperties(hCellWnd, CONTAINER_ACTION_STACK, 0, &ActionProperties, 0);
L_DispContainerGetCellProperties(hCellWnd, &CellProp, 0);
ActionProperties.nActiveSubCell = nSubCellIndex % (CellProp.uNumCols * CellProp.uNumRows);
ActionProperties.nScrollValue = nSubCellIndex - ActionProperties.nActiveSubCell;
L_DispContainerSetActionProperties(hCellWnd, CONTAINER_ACTION_STACK, 0, &ActionProperties, CONTAINER_ACTION_CELLLEVEL);
return SUCCESS;
}
L_INT DispContainerActiveSubCellChangedExample(HDISPCONTAINER hCon)
{
DISPCONTAINERACTIVESUBCELLCHANGED oldCallBack;
L_VOID * pOldUserData;
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_DispContainerGetActiveSubCellChangedCallBack(hCellWnd, &oldCallBack, &pOldUserData);
L_DispContainerSetActiveSubCellChangedCallBack(hCellWnd, ActiveSubCellChangedCallBack, hCon);
return SUCCESS;
}