LL_­CMND_­PAGE

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 LlPrintGet­Current­Page() 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;