L_DispContainerFlipAnnotationContainer

#include "l_bitmap.h"

L_LTIVW_API L_INT EXT_FUNCTION L_DispContainerFlipAnnotationContainer(hCellWnd, nSubCellIndex, uFlags)

HWND hCellWnd;

/* handle to the cell window */

L_INT nSubCellIndex;

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

L_UINT uFlags;

/* reserved for future */

Flips the annotation container.

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.

uFlags

Reserved for future use. Pass 0.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

This function only flips the annotation container. It does not flip the image itself.

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 95 / 98 / Me, Windows 2000 / XP, Windows CE.

See Also

Functions:

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

Topics:

Working with Annotations

 

Image Viewer Functions: Working with Annotations

Example

This example will flip the image along with the annotation container if the user click on the image using the left mouse button, and will reservse on the right mouse button, and will rotate on the middle mouse button.

#if defined LEADTOOLS_V17_OR_LATER
#if defined (LEADTOOLS_V16_OR_LATER)
static L_INT EXT_CALLBACK MouseCallBack(HWND hCellWnd,
                                        L_UINT                 uMessage,
                                        pDISPCONTAINERCELLINFO pCellInfo,
                                        L_VOID *               pUserData)
{
   UNREFERENCED_PARAMETER(pCellInfo);
   UNREFERENCED_PARAMETER(hCellWnd);
   UNREFERENCED_PARAMETER(pUserData);
   BITMAPHANDLE Bitmap;
   switch(uMessage)
   {
   case WM_LBUTTONUP:
      {
         L_DispContainerGetBitmapHandle(hCellWnd, pCellInfo->nSubCellIndex, &Bitmap, 0);
         L_FlipBitmap(&Bitmap);
         L_DispContainerSetBitmapHandle(hCellWnd, pCellInfo->nSubCellIndex, &Bitmap, TRUE, 0);
         L_DispContainerFlipAnnotationContainer(hCellWnd, pCellInfo->nSubCellIndex, 0);
      }
      break;
   case WM_MBUTTONUP:
         L_DispContainerGetBitmapHandle(hCellWnd, pCellInfo->nSubCellIndex, &Bitmap, 0);
         L_ReverseBitmap(&Bitmap);
         L_DispContainerSetBitmapHandle(hCellWnd, pCellInfo->nSubCellIndex, &Bitmap, TRUE, 0);
         L_DispContainerReverseAnnotationContainer(hCellWnd, pCellInfo->nSubCellIndex, 0);
      break;
   case WM_RBUTTONUP:
         L_INT    nAngle;
         L_DispContainerRotateBitmapPerspective(hCellWnd, pCellInfo->nSubCellIndex, 90, 0);
         L_DispContainerGetRotateBitmapPerspectiveAngle(hCellWnd, pCellInfo->nSubCellIndex, &nAngle, 0);
         L_DispContainerRotateAnnotationContainer(hCellWnd, pCellInfo->nSubCellIndex, nAngle, 0);
      break;
   }
   return SUCCESS;
}
L_INT DispContainerFlipAnnotationContainerExample(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;
}
#endif
#else
#if defined (LEADTOOLS_V16_OR_LATER)
static L_INT EXT_CALLBACK MouseCallBack(L_UINT                 uMessage,
                                 pDISPCONTAINERCELLINFO pCellInfo,
                                 L_VOID *               pUserData)
{
   UNREFERENCED_PARAMETER(pCellInfo);
   BITMAPHANDLE Bitmap;
   HDISPCONTAINER hCon = (HDISPCONTAINER)pUserData;
   switch(uMessage)
   {
   case WM_LBUTTONUP:
      {
         L_DispContainerGetBitmapHandle(hCon, pCellInfo->nCellIndex, pCellInfo->nSubCellIndex, &Bitmap, 0);
         L_FlipBitmap(&Bitmap);
         L_DispContainerSetBitmapHandle(hCon, pCellInfo->nCellIndex, pCellInfo->nSubCellIndex, &Bitmap, TRUE, 0);
         L_DispContainerFlipAnnotationContainer(hCon, pCellInfo->nCellIndex, pCellInfo->nSubCellIndex, 0);
      }
      break;
   case WM_MBUTTONUP:
         L_DispContainerGetBitmapHandle(hCon, pCellInfo->nCellIndex, pCellInfo->nSubCellIndex, &Bitmap, 0);
         L_ReverseBitmap(&Bitmap);
         L_DispContainerSetBitmapHandle(hCon, pCellInfo->nCellIndex, pCellInfo->nSubCellIndex, &Bitmap, TRUE, 0);
         L_DispContainerReverseAnnotationContainer(hCon, pCellInfo->nCellIndex, pCellInfo->nSubCellIndex, 0);
      break;
   case WM_RBUTTONUP:
         L_INT    nAngle;
         L_DispContainerRotateBitmapPerspective(hCon, pCellInfo->nCellIndex, pCellInfo->nSubCellIndex, 90, 0);
         L_DispContainerGetRotateBitmapPerspectiveAngle(hCon, pCellInfo->nCellIndex, pCellInfo->nSubCellIndex, &nAngle, 0);
         L_DispContainerRotateAnnotationContainer(hCon, pCellInfo->nCellIndex, pCellInfo->nSubCellIndex, nAngle, 0);
      break;
   }
   return SUCCESS;
}
L_INT DispContainerFlipAnnotationContainerExample(HDISPCONTAINER hCon)
{
   DISPCONTAINERMOUSECALLBACK oldCallBack;
   L_VOID *                   pOldUserData;
   L_DispContainerGetMouseCallBack(hCon, &oldCallBack, &pOldUserData);
   L_DispContainerSetMouseCallBack(hCon, MouseCallBack, hCon);
   return SUCCESS;
}
#endif
#endif