LL_­CMND_­DRAW_­USEROBJ

Aufgabe:

Fordert das Programm auf, das benutzerdefinierte Objekt zu zeichnen.

Aktivierung:

LlDefineVariableExt(hJob, <Name>, <Inhalt>, LL_­DRAWING_­USEROBJ,
   <Parameter>);

LlDefineFieldExt(hJob, <Name>, <Inhalt>, LL_­DRAWING_­USEROBJ,
   <Parameter>);

oder

LlDefineVariableExt(hJob, <Name>, <Inhalt>,
   LL_­DRAWING_­USEROBJ_­DLG,<Parameter>);

Parameter:

lParam zeigt auf eine scLlDrawUserObj-Struktur:

_­nSize: Größe der Struktur, sizeof(scLlDrawUserObj)

_­lpszName: Name der Variablen, die dem Objekt zugeordnet ist

_­lpszContents: Text-Inhalt der Variablen, die dem Objekt zugeordnet ist. Dieser Wert ist nur gültig, wenn die Variable über LlDefine­Variable­Ext() definiert wurde, ansonsten ist der _­hPara-Wert gültig.

_­lPara: lPara der Variablen, die dem Objekt zugeordnet ist (LL_­­DRAWING_­­USEROBJ oder LL_­­DRAWING_­­USEROBJ_­DLG). Entspricht dem 4. Parameter des LlDefineVariableExt()-Aufrufs.

_­lpPtr: lpPtr der Variablen, die dem Objekt zugeordnet ist. Entspricht einem Zeiger auf die Struktur, die mit dem 5. Parameter des LlDefine­VariableExt()-Aufrufs übergeben wurde.

_­hPara: Handle-Inhalt der Variablen, die dem Objekt zugeordnet ist. Dieser Wert ist nur gültig, wenn die Variable über LlDefineVariableExtHandle() definiert wurde, ansonsten ist der _­lpszContents-Wert gültig.

_­bIsotropic: TRUE: Das Objekt soll unverzerrt gezeichnet werden, FALSE: Die Zeichnung soll in das Rechteck eingepasst werden

_­lpszParameters: bei benutzerdefinierten Objekten als Tabellenfeld: NULL, bei LL_­­DRAWING_­USEROBJ: Zeiger auf einen leeren String, bei LL_­­DRAWING_­­USEROBJ_­DLG: Zeiger auf die Parameter-Zeichenkette, die bei LL_­­CMND_­­EDIT_­USEROBJ zurückgegeben wurde.

_­hPaintDC: Device Context für die Ausgaben

_­hRefDC: Device Context für Referenzen

_­rcPaint: Rechteck, in dem das Objekt gezeichnet werden soll. Der Mapping-Mode ist in den üblichen Zeichnungs-Einheiten, also mm/10, inch/100 oder inch/1000.

_­nPaintMode: 1: auf Designer-Preview, 0: auf Drucker/Echtdatenvorschau

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

Beispiel:

case LL_­CMND_­DRAW_­USEROBJ:
   pSCD = (PSCLLDRAWUSEROBJ)pSC->_­lParam;
   FillRect(pSCD->_hPaintDC,pSCD->_­rcPaint,
      GetStockObject(_ttoi(lpszContents)));
   break;