Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.191.189.120] |
|
Сообщ.
#1
,
|
|
|
Проблемка есть.
Есть RichEdit с текстом. Есть мышка. Как узнать, над каким словом находится курсор. |
Сообщ.
#2
,
|
|
|
может все намного проще можно сделать, но можно и так
положение мыши ты знаешь, положение приложения тоже, размеры формы и редактора тоже известны. позиционируешь мышь в коодинаты редактора, количество строк известно, т.е. в какую строку попадает курсор - позиция курсора по вертикали div высота строки + 1, позиция курсора должна уже быть отмаштабирована в координаты окна редактора, а далее перебираеш строку по буквам пока не попадешь в в координаты курсора по горизонтали, если шрифт равномерный, т.е. ширина всех букв равна, то еще проще позиция курсора div ширина символа и попадаеш в символ строки, как узнать какое это слово я думаю объяснять не надо, сложно однако получилось |
Сообщ.
#3
,
|
|
|
EM_CHARFROMPOS
|
Сообщ.
#4
,
|
|
|
EM_CHARFROMPOS
Можно поподробнее об этом, просто я хочу менять курсор над определённым словом. |
Сообщ.
#5
,
|
|
|
По-моему в хэлпе всё хорошо написано. Возвращается результат от сообщения в виде номера строки и номера символа в строке в том месте где движется мышь. Выделить слово исходя из того что известен конкертный символ, думаю, не сложно.
Return Values The return value specifies the character index in the low-order word and the line index in the high-order word. For single-line edit controls, the line index is always 0. The return value is the last character in the edit control if the given point is beyond the last character in the control. The return value is -1 if the specified point is outside the client area of the edit control. |