Я пытаюсь добиться чего-то похожего на выделение домена. Я хочу, чтобы часть моего текста в расширенном окне редактирования была другого цвета, как у нас в функции выделения доменов в IE.
Выпуск:
Я знаю, что мы должны сначала использовать EM_EXSETSEL
выбрать необходимый текст и затем применить EM_SETCHARFORMAT
,
EM_EXSETSEL
выполнить необходимую операцию, и нужный текст будет выбран правильно.
Тем не менее, когда я выполняю EM_SETCHARFORMAT
в выбранном тексте не происходит никаких изменений.
Окно создается с использованием RICHEDIT_CLASS.
Любая помощь будет оценена.
Как насчет чего-то вроде этого (чтобы выделить жирный красный текст на текущем выделении):
// Set up the CHARFORMAT structure
CHARFORMAT cfm;
cfm.cbSize = sizeof(cfm); // Don't forget this!
// Get char format
::SendMessage(hWnd, EM_GETCHARFORMAT, SCF_SELECTION, (LPARAM)&cfm);
// Set the new effects
cfm.dwEffects = CFE_BOLD;
cfm.crTextColor = RGB(255,0,0);
cfm.dwMask = CFM_BOLD | CFM_COLOR;
// Set the new format
::SendMessage(hWnd, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cfm);
где hWnd — дескриптор окна элемента управления Rich Edit.
Если нет … тогда опубликуйте некоторый код, чтобы мы могли видеть, где вы можете ошибаться …
Других решений пока нет …