Gets the current annotation callback function along with the user data, which were set using L_DispContainerSetAnnotationCallBack.
#include "ltivw.h"
L_LTIVW_API L_INT EXT_FUNCTION L_DispContainerGetAnnotationCallBack(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 annotation callback function set using L_DispContainerSetAnnotationCallBack.
Void pointer to be updated with the value of user defined data associated with the tag 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 example will convert the rectangle, ellipse or hilite annotation into region once the user clicks on them.
L_INT EXT_CALLBACK AnnotationCallBack(HWND hCellWnd,
L_UINT uMessage,
L_INT nX,
L_INT nY,
L_INT nCellIndex,
L_INT nSubCellIndex,
L_VOID * pUserData)
{
UNREFERENCED_PARAMETER(nX);
UNREFERENCED_PARAMETER(nY);
UNREFERENCED_PARAMETER(nCellIndex);
UNREFERENCED_PARAMETER(uMessage);
UNREFERENCED_PARAMETER(pUserData);
DISPCONTAINERANNATTRIBS AnnAttrib;
AnnAttrib.uStructSize = sizeof(DISPCONTAINERANNATTRIBS);
L_DispContainerGetSelectedAnnotationAttributes(hCellWnd, nSubCellIndex, &AnnAttrib, 0);
switch(AnnAttrib.uType)
{
case ANNOBJECT_RECT:
case ANNOBJECT_ELLIPSE:
case ANNOBJECT_HILITE:
L_DispContainerAnnToRgn(hCellWnd, nSubCellIndex, L_RGN_OR, TRUE, 0);
break;
}
return SUCCESS;
}
L_INT DispContainerAnnotationCallbacksExample(HDISPCONTAINER hCon)
{
DISPCONTAINERANNOTATIONCALLBACK 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_DispContainerGetAnnotationCallBack(hCellWnd, &oldCallBack, &pOldUserData);
L_DispContainerSetAnnotationCallBack(hCellWnd, AnnotationCallBack, hCon);
return SUCCESS;
}