This function returns all mark indexes that are within the rectangle specified by lpRect.
Declaration:
|
Copy Code
|
AT_ERRCOUNT ART_GUI_mark_hit_test(
HIGEAR hIGear,
HWND hWnd,
DWORD dwGrpID,
const LPAT_RECT lpRect,
LPART_MARK_INDEX lpMarkIndex,
DWORD dwMarkCount,
LPDWORD lpMarkCount,
LPAT_MODE lpResizeBox,
LPDWORD lpBoxIndex
);
|
Arguments:
Name |
Type |
Description |
hIGear |
HIGEAR |
HIGEAR handle to the image. |
hWnd |
HWND |
HWND handle to the window. |
dwGrpID |
DWORD |
Identifier of group. |
lpRect |
const LPAT_RECT |
Far pointer to an AT_RECT struct specifying the rectangular portion of image to search for marks. |
lpMarkIndex |
LPART_MARK_INDEX |
A far pointer returning the indexes. |
dwMarkCount |
DWORD |
The amount of memory available for returned marks. |
lpMarkCount |
LPDWORD |
The number of marks actually returned. |
lpResizeBox |
LPAT_MODE |
A far pointer to a defined constant of type AT_MODE, only used if the rectangle lpRect is an individual point and is over a resize handle. |
lpBoxIndex |
LPDWORD |
A far pointer to the index of the resize handle, or NULL if the return value is not needed. |
Return Value:
Returns the number of ImageGear errors that occurred during the function call.
Supported Raster Image Formats:
All pixel formats supported by ImageGear for C and C++.
Sample:
Annotation
Example:
|
Copy Code
|
HIGEAR hIGear; /* HIGEAR handle of */
/* image */
AT_ERRCOUNT nErrcount; /* Tally of IG errors on */
/* stack */
AT_RECT MarkRect; /* Region of image to */
/* query */
ART_MARK_INDEX MarkIndexes; /* Array of mark indexes */
DWORD MarkCount; /* Space available for */
/* marks or # of marks */
AT_MODE lpResizeBox; /* Handle to resize box, */
/* if there is one */
AT_DIMENSION nWidth, /* Original width and */
/* height */
nHeight;
UINT nBpp; /* Bits per pixel */
/* (not used) */
AT_DIMENSION nHalfWidth, /* Will hold half the */
/* width */
nHalfHeight; /* and half the height */
HWND HWnd;
DWORD dwGrpID;
/* Set rectangle to half the size of the image, centered */
if ( IG_image_is_valid (hIGear) )
{
IG_image_dimensions_get ( &hIGear, &nWidth, &nHeight,
&nBpp );
nHalfWidth = nWidth / 2;
nHalfHeight = nHeight / 2;
MarkRect.left = nHalfWidth / 2;
MarkRect.right = MarkRect.left + nHalfWidth - 1;
MarkRect.top = nHalfHeight / 2;
MarkRect.bottom = MarkRect.top + nHalfHeight - 1;
dwGrpID = IG_GRP_DEFAULT;
nErrcount = ART_GUI_mark_hit_test(hIGear, hWnd,
dwGroupID, &MarkRect,
&MarkIndexes, MarkCount, &MarkCount, &lpResizeBox,
&lpBoxIndex);
}
|
Remarks:
The rectangle represents screen coordinates.
There is some variation in what is returned:
- If the coordinates passed to lpRect define a point - in other words, the left and top are equal to the right and bottom:
- and the point is over a mark, the mark will be returned.
- and the point is over a resize box, an identifier indicating which resize box the point is over is returned.
- If the resize box is part of a line, free-hand line, polyline, polygon, or arrow, the index of the resize box is also returned.