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 LlDefineVariableExt() 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 LlDefineVariableExt()-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;