L_DispContainerGetAnnotationContainer

#include "l_bitmap.h"

L_LTIVW_API L_INT EXT_FUNCTION L_DispContainerGetAnnotationContainer(hCellWnd, nSubCellIndex, PhAnnContainer, uFlags)

HWND hCellWnd;

/* handle to the cell window */

L_INT nSubCellIndex;

/* index into the image list attached to the cell */

HANNOBJECT * PhAnnContainer;

/* address of the variable to be updated */

L_UINT uFlags;

/* reserved for future */

Gets the annotation container for the specific frame.

Parameter

Description

hCellWnd

A handle to the window that represents the cell on which the function's effect will be applied.

nSubCellIndex

A zero-based index into the image list attached to the cell specified in nCellIndex. This sub-cell contains the image that contains the annotation container. Pass -2 to refer to the selected sub-cell.

PhAnnContainer

Address of the variable to be updated with the handle to the annotation object that is found at the specified point.

uFlags

Reserved for future use. Pass 0.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

This function gets a copy of the annotation container. You must free it once it is no longer needed.

This function gets the annotation container. To set the annotation container use L_DispContainerSetAnnotationContainer.

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

Functions:

L_DispContainerRotateAnnotationContainer, L_DispContainerSetAnnotationContainer, L_DispContainerAnnToRgn, L_DispContainerGetSelectedAnnotationAttributes, L_DispContainerSetAnnotationCallBack, L_DispContainerGetAnnotationCallBack, L_DispContainerGetAnnotationCreatedCallBack, L_DispContainerSetAnnotationCreatedCallBack, DISPCONTAINERANNOTATIONCALLBACK, DISPCONTAINERANNOTATIONCREATEDCALLBACK

Topics:

Image Viewer Cells

 

Image Viewer Functions: Image Viewer Cells

Example

This example will copy the annotation container from the specified sub-cell clicked by the user using the left mouse button, and paste the annotation container on the specified sub-cell clicked by the user using the right mouse button.

#if defined LEADTOOLS_V17_OR_LATER
HANNOBJECT hContainer;
static L_INT EXT_CALLBACK MouseCallBack(HWND hCellWnd,
                                        L_UINT                 uMessage,
                                        pDISPCONTAINERCELLINFO pCellInfo,
                                        L_VOID *               pUserData)
{
   UNREFERENCED_PARAMETER(pCellInfo);
   UNREFERENCED_PARAMETER(pUserData);

   switch(uMessage)
   {
   case WM_LBUTTONUP:
         L_DispContainerGetAnnotationContainer(hCellWnd, pCellInfo->nSubCellIndex, &hContainer, 0);
      break;

   case WM_RBUTTONUP:
         L_DispContainerSetAnnotationContainer(hCellWnd, pCellInfo->nSubCellIndex, hContainer, 0);
      break;
   }

   return SUCCESS;
}

L_INT DispContainerGetAnnotationContainerExample(HDISPCONTAINER hCon)
{
   DISPCONTAINERMOUSECALLBACK 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_DispContainerGetMouseCallBack(hCellWnd, &oldCallBack, &pOldUserData);

   L_DispContainerSetMouseCallBack(hCellWnd, MouseCallBack, hCon);

   return SUCCESS;
}


#else



HANNOBJECT hContainer;
static L_INT EXT_CALLBACK MouseCallBack(L_UINT                 uMessage,
                                 pDISPCONTAINERCELLINFO pCellInfo,
                                 L_VOID *               pUserData)
{
   UNREFERENCED_PARAMETER(pCellInfo);
   HDISPCONTAINER hCon = (HDISPCONTAINER)pUserData;

   switch(uMessage)
   {
   case WM_LBUTTONUP:
         L_DispContainerGetAnnotationContainer(hCon, pCellInfo->nCellIndex, pCellInfo->nSubCellIndex, &hContainer, 0);
      break;

   case WM_RBUTTONUP:
         L_DispContainerSetAnnotationContainer(hCon, pCellInfo->nCellIndex, pCellInfo->nSubCellIndex, hContainer, 0);
      break;
   }

   return SUCCESS;
}

L_INT DispContainerGetAnnotationContainerExample(HDISPCONTAINER hCon)
{
   DISPCONTAINERMOUSECALLBACK oldCallBack;
   L_VOID *                   pOldUserData;

   L_DispContainerGetMouseCallBack(hCon, &oldCallBack, &pOldUserData);

   L_DispContainerSetMouseCallBack(hCon, MouseCallBack, hCon);

   return SUCCESS;
}


#endif