Aufgabe:
Ermöglicht es, zusätzliche Zeichnungen auf der Seite unterzubringen. Interessant ist dies besonders beim Etikettendruck, da man so etikettenübergreifende Informationen auf eine Seite ausgeben kann.
Aktivierung:
LlSetOption(hJob, LL_OPTION_CALLBACKMASK, <andere Flags> | LL_CB_PAGE);
Parameter:
lParam zeigt auf eine scLlPage-Struktur:
_nSize: Größe der Struktur, sizeof(scLlPage)
_bDesignerPreview: TRUE, wenn der Aufruf vom Designer-Preview stattfindet, FALSE, wenn der Aufruf während des Echtdaten-Preview oder des Drucks stattfindet.
_bPreDraw: TRUE bei Aufruf, bevor List & Label die Seite zeichnet. FALSE bei Aufruf, nachdem List & Label die Seite gezeichnet hat.
_hPaintDC: Device Context für die Ausgaben
_hRefDC: Device Context für Referenzen
Rückgabewert (_lResult):
0
Hinweise:
In diesem Callback darf keine List & Label-Funktion aufgerufen werden, die Ausgaben zur Folge hat (LlPrint(), etc.)! Funktionen wie LlPrintGetCurrentPage() oder LlPrintGetOption() oder auch LlPrintEnableObject() sind erlaubt.
Siehe: Hinweise zur Benutzung von GDI-Objekten.
Diese Funktion wird pro Seite zwei Mal aufgerufen, einmal mit _bPreDraw = TRUE, dann mit _bPreDraw == FALSE.
Die Seitengröße kann über die GetWindowExt()-Funktion bestimmt werden. Benutzen Sie hier _hRefDC!
Wenn Sie bei _bPreDraw == TRUE den Fenster-Ursprung von _hRefDC mit SetWindowOrg() verändern, wirkt sich das auf die gesamte Seite aus. Damit kann man z. B. einen Bundsteg für gerade/ungerade Seiten definieren. Diese Ausgabeverschiebung wirkt sich nur auf Echtdatenvorschau oder -Druck aus, nicht jedoch für die Designer-Vorschau.
Beispiel:
case LL_CMND_PAGE:
pSCP =
(PSCLLPAGE)pSC->_lParam;
if (pSCP->_bPreDraw
&& (LlPrintGetCurrentPage(hJob) % 2) ==
1)
SetWindowOrg(pSCP->_hPaintDC,-100,0);
break;