Aufgabe:
Ermöglicht es, die Farbgebung einzelner Tabellenzeilen zu modifizieren, z. B. um einen eigenen Zebramodus (jede zweite Zeile unterlegt) zu erzeugen.
Aktivierung:
LlSetOption(hJob, LL_OPTION_TABLE_COLORING, LL_COLORING_PROGRAM);
Dadurch wird die alleinige Kontrolle der Farbgebung in Tabellen Ihrem Programm überlassen! (die entsprechenden Einstellungsmöglichkeiten im Designer verschwinden dann)
oder
LlSetOption(hJob, LL_OPTION_TABLE_COLORING, LL_COLORING_DONTCARE);
Mit diesem Befehl lässt List & Label erst Ihr Programm den Hintergrund zeichnen, dann zeichnet es den Hintergrund bei Bedarf noch einmal mit dem im Designer definierten Feldhintergrund. Dadurch ist eine Art Kooperation zwischen Programmierer und Benutzer möglich.
Beachten Sie, dass in jedem Falle das Flag LL_CB_TABLELINE über LL_OPTION_CALLBACKMASK gesetzt werden muss.
Parameter:
lParam zeigt auf eine scLlTableLine-Struktur:
_nSize: Größe der Struktur, sizeof(scLlTableLine)
_nType: Art des Feldes:
Wert |
Bedeutung |
LL_TABLE_LINE_HEADER |
Kopfzeile |
LL_TABLE_LINE_BODY |
Datenzeile |
LL_TABLE_LINE_GROUP |
Gruppenkopf |
LL_TABLE_LINE_GROUPFOOTER |
Gruppenfuß |
LL_TABLE_LINE_FILL |
Füll-Fläche, die entsteht, wenn die Tabelle feste Größe besitzt und unter der letzten Datenzeile noch etwas Freiraum bleibt |
LL_TABLE_LINE_FOOTER |
Fußzeile |
_hPaintDC: Device Context für die Ausgaben
_hRefDC: Device Context für Referenzen
_rcPaint: Rechteck, in dem die Zeile gezeichnet werden soll. Der Mapping-Mode ist in der eingestellten Einheit, z. B. mm/100.
_nPageLine: Zeilenindex. Bezeichnet die 0-basierte Zeilennummer der Zeile auf dieser Seite.
_nLine: Zeilenindex. Bezeichnet die 0-basierte Zeilennummer der Zeile im gesamten Ausdruck.
_nLineDef: Die Nummer der Zeilendefinition, die ausgegeben wird.
_bZebra: TRUE, wenn Benutzer Zebra-Modus gewählt hat.
_rcSpacing: Werte der Zellen-Abstände
Rückgabewert (_lResult):
0
Hinweise:
In diesem Callback darf keine List & Label-Funktion aufgerufen werden, die Ausgaben zur Folge hat (LlPrint(), etc.)!
Siehe: Hinweise zur Benutzung von GDI-Objekten
Beispiel:
case LL_CMND_TABLELINE:
pSCL =
(PSCLLTABLELINE)pSC->_lParam;
if
((pSCL->_nPageLine % 2) == 1)
FillRect(pSCL->_hPaintDC,
pSCL->_rcPaint,
GetStockObject(LTGRAY_BRUSH);
pSC._lReply =
0;
break;