Finding Duplicate Barcodes
Take the following steps to add code to the existing project that will let you to find duplicate barcodes:
1. |
Start with the program you created in Reading Barcodes. |
|
2. |
Define the following global IDs in Ezfunc.h in the BarcodeTutor directory: |
|
#define IDM_FIND_DUPLICATE
202
3. |
Edit EZFUNC.RC file in the BarcodeTutor directory and add the following lines: |
MAIN_MENU MENU
BEGIN
...
...
MENUITEM "Find Duplicate" IDM_FIND_DUPLICATE
END
4. |
In the MainWndProc procedure, add the following code to the switch statement for WM_COMMAND: |
case IDM_FIND_DUPLICATE:
{
L_INT
nDupIndex=0;
L_TCHAR szBuffer[MAX_PATH];
memset(szBuffer, 0, MAX_PATH);
if (L_BarCodeIsDuplicated(&(pBarCodes[0])))
{
nDupIndex = L_BarCodeGetDuplicated(&(pBarCodes[0]));
if (nDupIndex >= 0)
{
// Print the first duplicated barcode data
wsprintf(szBuffer, TEXT("Data is %hs\nUnits %d\nPosX %d\nPosY %d\nWidth %d\nHeight %d\n\n"),
pBarCodes[nDupIndex].pszBarCodeData,
pBarCodes[nDupIndex].nUnits,
pBarCodes[nDupIndex].rcBarLocation.left,
pBarCodes[nDupIndex].rcBarLocation.top,
abs(pBarCodes[nDupIndex].rcBarLocation.right - pBarCodes[nDupIndex].rcBarLocation.left),
abs(pBarCodes[nDupIndex].rcBarLocation.bottom - pBarCodes[nDupIndex].rcBarLocation.top));
MessageBox(hWnd, szBuffer, TEXT("BarCode Info."), MB_OK);
// find the next (second) duplicated barcode data
nDupIndex = L_BarCodeGetNextDuplicated(pBarCodes, nDupIndex);
if (nDupIndex >= 0)
{
wsprintf(szBuffer, TEXT("Data is %hs\nUnits %d\nPosX %d\nPosY %d\nWidth %d\nHeight %d\n\n"),
pBarCodes[nDupIndex].pszBarCodeData,
pBarCodes[nDupIndex].nUnits,
pBarCodes[nDupIndex].rcBarLocation.left,
pBarCodes[nDupIndex].rcBarLocation.top,
abs(pBarCodes[nDupIndex].rcBarLocation.right - pBarCodes[nDupIndex].rcBarLocation.left),
abs(pBarCodes[nDupIndex].rcBarLocation.bottom - pBarCodes[nDupIndex].rcBarLocation.top));
MessageBox(hWnd, szBuffer, TEXT("BarCode Info."), MB_OK);
}
}
if (nDupIndex < 0)
{
wsprintf(szBuffer, TEXT("An error occurred \nError Code = %d\n"), nDupIndex);
MessageBox(hWnd, szBuffer, TEXT("Notice!"), MB_OK);
}
}
else
{
wsprintf(szBuffer, TEXT("This Barcode is not duplicated ..."));
MessageBox(hWnd, szBuffer, TEXT("Notice!"), MB_OK);
}
}
break;
5. |
Build SimpleLoad.exe. |
6. |
Run SimpleLoad.exe. |