|
Available in LEADTOOLS Medical Imaging toolkits. |
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 |
See Also
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