Sto cercando un modo per eseguire la sottolineatura ondulata rossa in un controllo Rich Edit (sto usando la versione 4.1 con Msftedit.dll). Sono in grado di produrre ondulata sottolineando con questo codice:Come modificare la sottolineatura del colore in un controllo Rich Edit (Win32/C)
CHARFORMAT2 format;
format.cbSize = sizeof(format);
format.dwMask = CFM_UNDERLINETYPE;
format.bUnderlineType = CFU_UNDERLINEWAVE;
SendMessage(hWndEdit,EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&format);
La documentazione MSDN non specifica come cambiare il colore delle sottolineature, solo il testo (con sottolineature) e lo sfondo del testo. Ho trovato un codice che dice di usare il nibble inferiore per il tipo di sottolineatura (CFU_UNDERLINEWAVE) e quello superiore per il colore. Quindi ho provato:
format.bUnderlineType = CFU_UNDERLINEWAVE | 0x50;
Ma questo non funziona.
UPDATE
Ho provato questo codice con la versione 3.0 (Riched20.dll) e sta funzionando. Quindi il problema sta nel 4.1. La funzione è stata rimossa o spostata altrove?
Non funziona anche nella versione 6 (la DLL utilizzata da Office 2007).
La soluzione originale ha funzionato per me (testata su Windows XP, 7, 8, 8.1, 10). L'unico svantaggio è che devi usare un'implementazione piuttosto vecchia di RichEdit (vale a dire 'RICHEDIT20W' o una versione simile), che potrebbe non essere un problema per la maggior parte degli utenti. –