Меня интересует позиция текущего курсора в RichEdit в пикселах
Мне известна функция EM_CharFromPos, которая возвращает номер символа, ближайшего к указанным координатам.
Но меня интересует как раз обратная функция: есть конкретный символ, как найти позицию в пикселах этого символа. Я понимаю, что курсор (или символ) есть некоторая фигура, а не одна точка, но должна же быть координата, скажем, верхнего левого угла этого символа.
(Конечно, вопрос об использовании события типа OnMouseDown, или чего-то подобного отпадает сразу)
Заранее благодарю
Здравствуйте, Аноним, Вы писали:
А>Меня интересует позиция текущего курсора в RichEdit в пикселах А>Мне известна функция EM_CharFromPos, которая возвращает номер символа, ближайшего к указанным координатам. А>Но меня интересует как раз обратная функция: есть конкретный символ, как найти позицию в пикселах этого символа. Я понимаю, что курсор (или символ) есть некоторая фигура, а не одна точка, но должна же быть координата, скажем, верхнего левого угла этого символа. А>(Конечно, вопрос об использовании события типа OnMouseDown, или чего-то подобного отпадает сразу) А>Заранее благодарю
Может поможет обратная функция:
An application sends the EM_POSFROMCHAR message to retrieve the coordinates of the specified character in an edit control.
EM_POSFROMCHAR
wParam = (LPPOINT) lpPoint; // address of structure
// receiving character position
lParam = (LPARAM) wCharIndex; // zero-based index of character
Parameters
lpPoint
Value of wParam. Address of a POINT structure that receives the coordinates of the specified character. The coordinates in the structure locate the upper-left corner of the character. If the wCharIndex is greater than the index of the last character in the control, the returned coordinates are of the position just past the last character of the control. The coordinates are relative to the upper-left corner of the edit control's client area.
wCharIndex
Value of lParam. Specifies the zero-based index of the character.
Return Value
This message does not return a value.
Remarks
For a single-line edit control, the y-coordinate is always zero. A returned coordinate can be negative if the character has been scrolled outside the edit control's client area. The coordinates are truncated to integer values.