LL_­CMND_­TABLEFIELD

Aufgabe:

Ermöglicht es, die Farbgebung einzelner Tabellenfelder zu modifizieren.

Aktivierung:

LlSetOption(hJob, LL_­OPTION_­TABLE_­COLORING, LL_­COLORING_­PROGRAM);

Dadurch wird die alleinige Kontrolle der Farbgebung in Tabellen Ihrem Programm überlassen (die entsprechenden Einstellungen im Tabellen-Eigenschaften-Dialog des Designers verschwinden dann).

LlSetOption(hJob, LL_­OPTION_­TABLE_­COLORING, LL_­COLORING_­DONTCARE);

Mit dieser Option hingegen lässt List & Label erst Ihr Programm den Hintergrund zeichnen, dann zeichnet es den Hintergrund bei Bedarf noch einmal mit dem im Designer definierten Feldmuster. Dadurch ist eine Art Kooperation zwischen dem Programmierer und dem Benutzer möglich.

Parameter:

lParam zeigt auf eine scLlTableField-Struktur:

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

_­nType: Art des Feldes:

Wert

Bedeutung

LL_­TABLE_­FIELD_­HEADER

Feld ist in Kopfzeile

LL_­TABLE_­FIELD_­BODY

Feld ist in Datenzeile

LL_­TABLE_­FIELD_­GROUP

Feld ist in Gruppenkopf

LL_­TABLE_­FIELD_GROUPFOOTER

Feld ist in Gruppenfuß

LL_­TABLE_­FIELD_­FILL

Feld ist die Füll-Fläche, die entsteht, wenn die Tabelle feste Größe besitzt und unter der letzten Datenzeile noch etwas Freiraum bleibt

LL_­TABLE_­FIELD_­FOOTER

Feld ist in Fußzeile

 

_­hPaintDC: Device Context für die Ausgaben

_­hRefDC: Device Context für Referenzen

_­rcPaint: Rechteck, in dem das Feld gezeichnet werden soll. Der Mapping-Mode ist in der eingestellten Einheit, z. B. mm/100.

_nLineDef: Die Nummer der Zeilendefinition, die ausgegeben wird.

_­nIndex: Feldindex, 0-basiert (die erste Spalte hat als Index 0, die zweite 1, etc.)

_­rcSpacing: Werte der Zellen-Abstände

_pszContents: Der Parameter liefert den (evaluierten) Inhalt der Zelle, die gerade ausgegeben wird, also z. B. "Müller" für eine Spalte, die Person.Nachname enthält. Diesen Parameter kann man verwenden, um z. B. bestimmte Werte im Event besonders zu behandeln.

Rückgabewert (_lResult):

0

Hinweise:

In diesem Callback darf keine List & Label-Funktion aufgerufen werden, die Ausgaben zur Folge hat (LlPrint(), etc.)!

Wenn Sie irgendein GDI-Objekt in diesen DC selektieren oder andere Änderungen vornehmen, z. B. des Mapping-Modes, sollten Sie die Änderungen vor der Beendigung der Routine wieder rückgängig machen. Tipp: die API-Funktionen SaveDC(), RestoreDC() können bei komplexen Veränderungen sehr helfen (verwendete Funktionen sind Windows-API-Funktionen).

Beispiel:

case LL_­CMND_­TABLE­FIELD:
   pSCF = (PSCLLTABLEFIELD)pSC->_­lParam;
   if (pSCF->_­nIndex == 1)
   {
      FillRect(pSCF->_­hPaintDC, pSCF->_­rcPaint,
         GetStockObject(LTGRAY_­BRUSH);
   }
   pSC._­lResult = 0;
   break;