RTF-Objekt unter Windows 8 ohne Transparenz

Gilt ab List & Label 18
Ab dem Service Pack 18.003 wird nun unter Windows 8 das Laden des aktuellen Windows 8 RTF-Controls (MSFTEDIT) von List & Label unterstützt.

Wichtiger Hinweis:
Das Windows 8 RTF-Control unterstützt jedoch keine Transparenz mehr.


Ohne die Unterstützung von Transparenz kann es bspw. dazu kommen, dass ein RTF-Objekt innerhalb einer Tabelle mit Zebramuster mit einem weißem Hintergrund anstelle des Zebramusters dargestellt wird.

Um das Verhalten dennoch wiederherstellen zu können, muss eine ältere RTF-Version verwendet bzw. aktiviert werden. Die verfügbaren RTF-Versionen sind im Debwin-Logfile ersichtlich. In diversen Windows 8 Testsystemen war das die Version “0x051f” (dezimal: 1311):

...
CMLL18 : 17:04:37.380 000004d0/00 0 [CMLL18.DLL] control 'RichEdit50W' in module 'C:\Windows\SYSTEM32\MSFTEDIT.DLL' has version 0x0602
CMLL18 : 17:04:37.381 000004d0/00 1 [CMLL18.DLL] control 'RichEdit20W' in module 'C:\Windows\SYSTEM32\RICHED20.DLL' has version 0x051f
...


Ein Setzen der RTF-Version via LL_OPTION_MAXRTFVERSION auf “1311” stellt das gewünschte Verhalten resp. die Transparenz unter Windows 8 Testsystemen wieder her. Bitte beachten Sie, dass die Option LL_OPTION_MAXRTFVERSION vor dem ersten LlJobOpen() mit einem Job-Handle von “-1” aufgerufen werden muss. Weitere Informationen zu dieser Option finden Sie auch in der Programmierer-Referenz. Wenn Sie mit einer unserer Komponenten arbeiten können Sie direkt die Eigenschaft MaxRtfVersion auf den gewünschten Wert setzen, die Komponenten kümmern sich automatisch um den korrekten Zeitpunkt für das Setzen der Eigenschaft.

Ab List & Label 19 kann die Transparenz über die Option "LL_OPTION_RTF_WHITE_BACKGROUND_IS_TRANSPARENT" (Default: true) via LlSetOption() beeinflusst werden. 
IDKBTD000861 KBTD000861