L_DispContainerGetBitmapPixel

#include "l_bitmap.h"

L_LTIVW_API L_INT EXT_FUNCTION L_DispContainerGetBitmapPixel(hCellWnd, nSubCellIndex, pSrcPoint, pBitmapPoint, uFlags)

HWND hCellWnd;

/* handle to the cell window */

L_INT nSubCellIndex;

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

LPPOINT pSrcPoint;

/* pointer to a POINT structure */

LPPOINT pBitmapPoint;

/* address of the POINT structure to be updated */

L_UINT uFlags;

/* reserved for future */

Gets the bitmap pixel associated with the specified position.

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 bitmap. Pass -2 to refer to the selected sub-cell.

pSrcPoint

Pointer to the POINT structure that specifies the point to get the corresponding bitmap coordinates. Coordinates are relative to the associated cell area.

pBitmapPoint

Pointer to the POINT structure that provides the corresponding bitmap coordinates to the specified point pSrcPoint.

uFlags

Reserved for future use. Pass 0.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

If the user passes coordinates that falls outside the valid bitmap coordinates range, pBitmapPoint will return {-1, -1}.

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_DispContainerCreate, L_DispContainerRemoveCell, L_DispContainerInsertCell, L_DispContainerGetCellCount, L_DispContainerGetWindowHandle, L_DispContainerSetCellBitmapList, L_DispContainerSetCellTag, L_DispContainerGetCellProperties, L_DispContainerGetCellPosition, L_DispContainerRepositionCell, L_DispContainerGetCellBitmapList, L_DispContainerGetCellBounds, L_DispContainerFreezeCell, L_DispContainerSelectCell, L_DispContainerIsCellSelected, L_DispContainerIsCellFrozen

Topics:

Image Viewer Cells

 

Image Viewer Functions: Image Viewer Cells

Example

this example draw dots on the image when clicking on it using the left mouse button.

#if defined LEADTOOLS_V17_OR_LATER
static L_INT EXT_CALLBACK MouseCallBack(HWND hCellWnd,
                                        L_UINT                 uMessage,
                                        pDISPCONTAINERCELLINFO pCellInfo,
                                        L_VOID *               pUserData)
{
   UNREFERENCED_PARAMETER(pCellInfo);
   HDISPCONTAINER hCon = (HDISPCONTAINER)pUserData;
   POINT ptBitmapPoint;
   BITMAPHANDLE Bitmap;

   L_INT nCellIndex = pCellInfo->nCellIndex;
   hCellWnd = L_DispContainerGetCellWindowHandle(hCon, nCellIndex, 0);


   switch(uMessage)
   {
   case WM_LBUTTONDOWN:
      {
         POINT ptPoint = {pCellInfo->nX, pCellInfo->nY};
         L_DispContainerGetBitmapPixel(hCellWnd, pCellInfo->nSubCellIndex, &ptPoint, &ptBitmapPoint, 0);

         L_DispContainerGetBitmapHandle(hCellWnd, pCellInfo->nSubCellIndex, &Bitmap, 0);
         L_PutPixelColor(&Bitmap, ptBitmapPoint.y, ptBitmapPoint.x, RGB(255, 255, 255));
         L_DispContainerSetBitmapHandle(hCellWnd, pCellInfo->nSubCellIndex, &Bitmap, TRUE, 0);
      }
      break;
   }

   return SUCCESS;
}

L_INT DispContainerGetBitmapPixel(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



static L_INT EXT_CALLBACK MouseCallBack(L_UINT                 uMessage,
                                 pDISPCONTAINERCELLINFO pCellInfo,
                                 L_VOID *               pUserData)
{
   UNREFERENCED_PARAMETER(pCellInfo);
   HDISPCONTAINER hCon = (HDISPCONTAINER)pUserData;
   POINT ptBitmapPoint;
   BITMAPHANDLE Bitmap;

   switch(uMessage)
   {
   case WM_LBUTTONDOWN:
      {
         POINT ptPoint = {pCellInfo->nX, pCellInfo->nY};
         L_DispContainerGetBitmapPixel(hCon, pCellInfo->nCellIndex, pCellInfo->nSubCellIndex, &ptPoint, &ptBitmapPoint, 0);

         L_DispContainerGetBitmapHandle(hCon, pCellInfo->nCellIndex, pCellInfo->nSubCellIndex, &Bitmap, 0);
         L_PutPixelColor(&Bitmap, ptBitmapPoint.y, ptBitmapPoint.x, RGB(255, 255, 255));
         L_DispContainerSetBitmapHandle(hCon, pCellInfo->nCellIndex, pCellInfo->nSubCellIndex, &Bitmap, TRUE, 0);
      }
      break;
   }

   return SUCCESS;
}

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

   L_DispContainerGetMouseCallBack(hCon, &oldCallBack, &pOldUserData);

   L_DispContainerSetMouseCallBack(hCon, MouseCallBack, hCon);

   return SUCCESS;
}


#endif