ImageGear for C and C++ on Windows v21.0 - Updated
API Reference Guide / ART Component API Reference / ART Component Functions Reference / GUI Functions / ART_GUI_mark_hit_test
In This Topic
    ART_GUI_mark_hit_test
    In This Topic

    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: