|
Available in LEADTOOLS Medical Imaging toolkits. |
LImageViewerCell::AnnotationCallBack
#include "ltwrappr.h"
virtual L_INT LImageViewerCell::AnnotationCallBack(hCellWnd, uMessage, nX, nY, nCellIndex, nSubCellIndex)
|
HWND hCellWnd; |
/* handle to the cell window */ |
|
L_UINT uMessage; |
/* message */ |
|
L_INT nX; |
/* X mouse position */ |
|
L_INT nY; |
/* Y mouse position */ |
|
L_INT nCellIndex; |
/* index of the affected cell */ |
|
L_INT nSubCellIndex; |
/* index into the image list attached to the cell */ |
This callback function is called every time the user clicks on an annotation object.
|
Parameter |
Description |
|
hCellWnd |
A handle to the window that represents the Medical Viewer Cell. |
|
uMessage |
Value that represents the message from the mouse. Possible values are: WM_LBUTTONDOWN WM_LBUTTONUP WM_MBUTTONDOWN WM_MBUTTONUP WM_MOUSEMOVE WM_RBUTTONDOWN WM_RBUTTONUP |
|
nX |
A Value that represents the X position of the cursor. |
|
nY |
A Value that represents the Y position of the cursor. |
|
nCellIndex |
Index of the cell that contains the sub-cell that annotation object |
|
nSubCellIndex |
Index of the sub-cell that contains that annotation object. |
Returns
|
SUCCESS |
The function was successful. |
|
< 1 |
An error occurred. Refer to Return Codes. |
Comments
In order to use this callback function, it must first be set by calling LImageViewerCell::EnableAnnotationCreatedCallBack 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. |
See Also
Example
This example will convert the rectangle, ellipse or hilite annotation into region once the user clicks on them.
#if defined LTV17_CONFIG
#ifdef LImageViewerChild
class LImageViewerChild :public LImageViewerCell
{
virtual L_INT AnnotationCallBack(HWND hCellWnd,
L_UINT uMessage,
L_INT nX,
L_INT nY,
L_INT nCellIndex,
L_INT nSubCellIndex);
};
#endif
L_INT LImageViewerChild ::AnnotationCallBack(HWND hCellWnd,
L_UINT uMessage,
L_INT nX,
L_INT nY,
L_INT nCellIndex,
L_INT nSubCellIndex)
{
UNREFERENCED_PARAMETER(hCellWnd);
UNREFERENCED_PARAMETER(nCellIndex);
UNREFERENCED_PARAMETER(nX);
UNREFERENCED_PARAMETER(nY);
UNREFERENCED_PARAMETER(uMessage);
DISPCONTAINERANNATTRIBS AnnAttrib;
AnnAttrib.uStructSize = sizeof(DISPCONTAINERANNATTRIBS);
GetSelectedAnnotationAttributes(nSubCellIndex, &AnnAttrib, 0);
switch(AnnAttrib.uType)
{
case ANNOBJECT_RECT:
case ANNOBJECT_ELLIPSE:
case ANNOBJECT_HILITE:
AnnToRgn(nSubCellIndex, L_RGN_OR, TRUE, 0);
break;
}
return SUCCESS;
}
L_INT LImageViewer_AnnotationCallbacksExample(LImageViewerCell& ImageViewerCell)
{
ImageViewerCell.EnableAnnotationCallBack(TRUE);
return SUCCESS;
}
#else
#ifdef LImageViewerChild
class LImageViewerChild :public LImageViewerCell
{
virtual L_INT AnnotationCallBack(L_UINT uMessage,
L_INT nX,
L_INT nY,
L_INT nCellIndex,
L_INT nSubCellIndex);
};
#endif
L_INT LImageViewerChild ::AnnotationCallBack(L_UINT uMessage,
L_INT nX,
L_INT nY,
L_INT nCellIndex,
L_INT nSubCellIndex)
{
UNREFERENCED_PARAMETER(nX);
UNREFERENCED_PARAMETER(nY);
UNREFERENCED_PARAMETER(uMessage);
DISPCONTAINERANNATTRIBS AnnAttrib;
AnnAttrib.uStructSize = sizeof(DISPCONTAINERANNATTRIBS);
GetSelectedAnnotationAttributes( nCellIndex, nSubCellIndex, &AnnAttrib, 0);
switch(AnnAttrib.uType)
{
case ANNOBJECT_RECT:
case ANNOBJECT_ELLIPSE:
case ANNOBJECT_HILITE:
AnnToRgn( nCellIndex, nSubCellIndex, L_RGN_OR, TRUE, 0);
break;
}
return SUCCESS;
}
L_INT LImageViewer_AnnotationCallbacksExample(LImageViewer& ImageViewer)
{
ImageViewer.EnableAnnotationCallBack(TRUE);
return SUCCESS;
}
#endif // LTV17_CONFIG