SetBoxAlphabetHRC 

2.0     

Specifies the alphabet codes to use for a range of boxes.

int SetBoxAlphabetHRC( HRC hrc, LPALC rgalc, UINT cAlc )

Parameters

hrc

Handle to an HRC object.

rgalc

An array of cAlc ALC_ values. The array is mapped onto boxes starting at box zero.

cAlc

Number of ALC_ values in rgalc. This should match the number of boxes. If this parameter is 0, SetBoxAlphabetHRC simply returns 0.

Return Value

Returns HRCR_OK if successful; otherwise, returns one of the following negative values:

Constant

Description

HRCR_ERROR

Invalid parameter or other error.

HRCR_MEMERR

Insufficient memory.

HRCR_UNSUPPORTED

The recognizer does not support this function.

 

Comments

SetBoxAlphabetHRC applies only when an HRC has been configured for box guides with the SetGuideHRC3BE5AG5 function. Although SetAlphabetHRC1AOCS7 can also specify an alphabet set for boxed input, it attaches the same alphabet setting to all boxes indiscriminately. SetBoxAlphabetHRC offers greater control by allowing an application to set different alphabets for individual boxes of a single HRC.

Example

For example, consider a boxed entry on a requisition form that expects a part number consisting of five characters. The first two characters are uppercase letters, the next two are numerals, and the last character can be either another numeral or a lowercase revision code. The following example demonstrates how to configure the HRC for this hypothetical scenario:

#define  PART_LEN    5                  // Five characters in entry

 

HRC      hrcPart;                       // HRC for parts entry

GUIDE    guidePart;                     // GUIDE for parts entry

ALC      alcPart[PART_LEN];             // Array of ALC_ codes for entry

     .

     .                                   // Initialize the GUIDE here

     .

guidePart.cHorzBox = PART_LEN;          // Number of boxes in entry

guidePart.cVertBox = 1;                 // Single row

guidePart.cyMid    = 0;                 // No midline

 

iret = SetGuideHRC( hrcPart, (LPGUIDE)&guidePart, 0 );

 

if (iret == HRCR_OK)

     alcPart[0] = alcPart[1] = ALC_UCALPHA;  // Uppercase in boxes 1-2

     alcPart[2] = alcPart[3] = ALC_NUMERIC;  // Numerals in boxes 3-4

     alcPart[4] = ALC_LCALPHA | ALC_NUMERIC; // Lower or numeral in box 5

 

     // Map alphabet codes onto boxes of parts number entry

     SetBoxAlphabet( hrcPart, (LPALC)&alcPart, PART_LEN );

}

 

See Also

GetAlphabetHRC, SetAlphabetHRC