Painting Pages and Zones
To add code to an existing project in order to paint pages and zones:
1. |
Start with the program you created in Working with Zones. |
2. |
Define the following global variables in EZFUNC.H in the DocumentTutor directory: |
L_BOOL bDrawZones;
L_BOOL bDrawPage;
3. |
Define the following global IDs in Ezfunc.h in the DocumentTutor directory: |
#define IDM_DRAW_ZONES 204
4. |
Edit EZFUNC.RC file in the DocumentTutor directory and add the following lines: |
MAIN_MENU MENU
BEGIN
...
...
MENUITEM "Enable Draw Zones" IDM_DRAW_ZONES
END
5. |
In the MainWndProc procedure, add the following code to the switch statement for WM_COMMAND: |
case IDM_DRAW_ZONES:
bDrawZones = !bDrawZones;
break;
6. |
Under WM_CREATE in EZFUNC.CPP, add the following line after "L_DocAddPage()" : |
bDrawPage = FALSE;
L_DocSetActivePage(hDoc, 0);
bDrawPage = TRUE;
/* Get the client area of the adjusted window */
GetClientRect(hWnd,&rClientSize);
/* Make the destination rectangle for painting the same as the client area */
rLeadDest = rClientSize;
7. |
In the MainWndProc procedure, add the following code to the WM_PAINT before WM_DESTROY and after WM_SYSCOLORCHANGE: |
case WM_PAINT:
hdc = BeginPaint (hWnd, &ps);
if (bDrawPage)
{
if (hpalPaint) /* If we have a paint palette, select it */
{
hPalette = SelectPalette (hdc, hpalPaint, TRUE);
/* Uncomment this if you do not process WM_QUERYNEWPALETTE */
/* RealizePalette (hdc); */
}
L_DocDrawPage(hDoc, hdc, 0, NULL, NULL, &rLeadDest, &ps.rcPaint, SRCCOPY, bDrawZones);
if (hpalPaint) /* Return old palette */
SelectPalette (hdc, hPalette, TRUE);
}
EndPaint (hWnd, &ps); /* Return DC */
return 0;
8. |
Build SimpleLoad.exe. |
9. |
Run SimpleLoad.exe. |