Radioniker
BANNED | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Всем привет. Пытаюсь сделать так, чтобы при выделении текста мышью или клавиатурой в RichEdit отображался нужный мне цвет выделения. По умолчанию в RichEdit инверсный цвет и если сделать фон текста нужным-инверсным, то получим нужный цвет выделения. Такой код работает, в принципе, как надо, но только при выделении текста клавиатурой. В WndProc ловлю WM_NOTIFY и вызываю эту процедуру: void testselect(LPARAM lParam) { NMHDR nmhdr = (*(SELCHANGE*)lParam).nmhdr; CHARFORMAT2 charFormat; if (nmhdr.code == EN_SELCHANGE) { ZeroMemory((PVOID)&charFormat, sizeof(CHARFORMAT2)); charFormat.cbSize = sizeof(CHARFORMAT2); charFormat.dwMask = CFM_COLOR | CFM_BACKCOLOR; charFormat.crTextColor = RGB(0, 0, 0); charFormat.crBackColor = RGB(255, 255, 255); SendMessage(nmhdr.hwndFrom, EM_SETCHARFORMAT, (WPARAM)SCF_ALL, (LPARAM)&charFormat); charFormat.crTextColor = RGB(255, 255, 255); charFormat.crBackColor = RGB(127, 64, 0); SendMessage(nmhdr.hwndFrom, EM_SETCHARFORMAT, (WPARAM)SCF_SELECTION, (LPARAM)&charFormat); } } При выделении текста мышью оно, конечно, тоже работает, но только после того, как отпустишь кнопку мыши. Вопрос, собственно, в том, как сделать, чтобы код мог отслеживать, сколько выделено символов мышью во время выделения, а не после. Чтобы на лету изменять текст цвета и тд. На ум приходит бредовая мысль об отслеживании координат мыши, но как то это слишком. Код должен быть исключительно на C++/WinAPI, так что идеи со всякими библиотеками-обертками не предлагать. Заранее спасибо. |