#include "ltdoc2.h"
L_LTDOC2_API L_INT EXT_FUNCTION L_Doc2SetZoneLayout(hDoc, nPageIndex, nZoneIndex, prc, nRectCount)
L_HDOC2 hDoc; |
handle to the OCR document |
L_INT nPageIndex; |
page index |
L_INT nZoneIndex; |
zone index |
RECT * prc; |
pointer to RECT array to set |
L_INT nRectCount; |
number of array elements |
Updates the shape of the specified zone.
Parameter |
Description |
hDoc |
Handle to the OCR document. This handle is obtained by calling the L_Doc2StartUp function. |
nPageIndex |
Index of the page. This is a zero-based index. |
nZoneIndex |
Index of the zone. This is a zero-based index. |
prc |
Array of rectangles to be used when setting the specified zone on the specified page. |
nRectCount |
Number of rectangle array elements being set. |
SUCCESS |
The function was successful. |
< 1 |
An error occurred. Refer to Return Codes. |
This function updates the shape of the specified zone in the user zone list of the specified page.
To get the rectangles for a zone call the L_Doc2GetZoneLayout function.
To add a user zone, call the L_Doc2AddZone function. To add rectangle(s) to a user zone, making its shape an irregular shape, call the L_Doc2AddZoneRect function.
Required DLLs and Libraries
LTDOC2 For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application. |
L_INT Doc2ZoneLayoutExample(L_HDOC2 hDoc, L_INT nPageIndex, L_INT nZoneIndex)
{
L_INT nRet;
RECT rcZoneLayout[2];
rcZoneLayout[0].left = 10;
rcZoneLayout[0].top = 10;
rcZoneLayout[0].right = 50;
rcZoneLayout[0].bottom = 50;
rcZoneLayout[1].left = 25;
rcZoneLayout[1].top = 25;
rcZoneLayout[1].right = 75;
rcZoneLayout[1].bottom = 75;
nRet = L_Doc2SetZoneLayout(hDoc, nPageIndex, nZoneIndex, rcZoneLayout, 2);
if (nRet != SUCCESS)
return nRet;
COLORREF clr;
L_Doc2GetZoneColor(hDoc, nPageIndex, nZoneIndex, &clr);
L_TCHAR szBuffer[100];
memset(szBuffer, 0, sizeof(szBuffer));
wsprintf(szBuffer, TEXT("Zone color = %d"), clr);
MessageBox(NULL, szBuffer, TEXT("Get Zone Color"), MB_OK);
L_INT nRectCount=0;
nRet = L_Doc2GetZoneLayout(hDoc, nPageIndex, nZoneIndex, NULL, &nRectCount);
if (nRet != SUCCESS)
return nRet;
RECT * pRects = (RECT *)GlobalAllocPtr(GHND, sizeof(RECT) * nRectCount);
nRet = L_Doc2GetZoneLayout(hDoc, nPageIndex, nZoneIndex, &pRects, &nRectCount);
if (nRet != SUCCESS)
return nRet;
for(int i=0; i<nRectCount; i++)
{
wsprintf(szBuffer, TEXT("Zone Layout # %d\nLeft = %d\nTop = %d\nRight = %d\nBottom = %d\n"),
i,
pRects[i].left,
pRects[i].top,
pRects[i].right,
pRects[i].bottom);
MessageBox(NULL, szBuffer, TEXT("Notice"), MB_OK);
}
GlobalFreePtr(pRects);
return SUCCESS;
}