#include "l_bitmap.h"
L_LTIVW_API L_INT EXT_FUNCTION L_DispContainerGetBitmapPixel(hCellWnd, nSubCellIndex, pSrcPoint, pBitmapPoint, uFlags)
Gets the bitmap pixel associated with the specified position.
A handle to the window that represents the cell on which the function's effect will be applied.
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.
Pointer to the POINT structure that specifies the point to get the corresponding bitmap coordinates. Coordinates are relative to the associated cell area.
Pointer to the POINT structure that provides the corresponding bitmap coordinates to the specified point pSrcPoint.
Reserved for future use. Pass 0.
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
If the user passes coordinates that falls outside the valid bitmap coordinates range, pBitmapPoint will return {-1, -1}.
Required DLLs and Libraries
this example draw dots on the image when clicking on it using the left mouse button.
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;
}