RichEdit получить строку из положения пикселя
Если я щелкну внутри элемента управления TRichEdit, как я могу получить индекс строки (я нажал) из координат клиента мыши?
Другими словами, как мне преобразовать клиентскую координату в индекс строки?
*** РЕДАКТИРОВАТЬ Я фактически не щелкаю внутри элемента управления TRichEdit, я щелкаю в другом элементе управления и должен синхронизироваться с номером строки элемента управления TRichEdit.
1 ответ
Решение
Послать EM_CHARFROMPOS
а также EM_LINEFROMCHAR
сообщения в RichEdit, например:
POINTL pt = ...; // client coordinates
int pos = RichEdit1->Perform(EM_CHARFROMPOS, 0, (LPARAM)&pt);
int idx = RichEdit1->Perform(EM_LINEFROMCHAR, pos, 0);