Получить координаты каретки ?
От: Kiril_Kuchereavyi  
Дата: 17.06.03 11:14
Оценка:
Есть форма с едитами. Каретка ввода находится в одном из них. Функция GetCaretPos во всех едитах возврашает 1,1. Это то понятно.
Не понятно другое, как взять координаты каретки относительно родительского окна, в котором находятся эти едиты ?
Была другая идея: Взять координаты Едита, в котором находится каретка.
GetWindowRect возврашает странные координаты. Не понятно откуда они берутся.
Причем если посмотреть через Spy++, то все координаты нормальные. А у меня получается ерунда.
Re: Получить координаты каретки ?
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 17.06.03 11:23
Оценка:
Здравствуйте, Kiril_Kuchereavyi, Вы писали:

K_K>Была другая идея: Взять координаты Едита, в котором находится каретка.

K_K>GetWindowRect возврашает странные координаты. Не понятно откуда они берутся.
K_K>Причем если посмотреть через Spy++, то все координаты нормальные. А у меня получается ерунда.

GetWindowRect() возвращает координаты относительно экрана, а не относительно непосредственного парента.
- Искренне ваш, Поросенок Пафнутий
Re[2]: Получить координаты каретки ?
От: Alexmoon Украина  
Дата: 17.06.03 11:29
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>Здравствуйте, Kiril_Kuchereavyi, Вы писали:


K_K>>Была другая идея: Взять координаты Едита, в котором находится каретка.

K_K>>GetWindowRect возврашает странные координаты. Не понятно откуда они берутся.
K_K>>Причем если посмотреть через Spy++, то все координаты нормальные. А у меня получается ерунда.

SDB>GetWindowRect() возвращает координаты относительно экрана, а не относительно непосредственного парента.

Совершенно верно замечено. Для взятия координат относительно парента есть функция GetClientRect.

а чтобы положение каретки относительно парента едита посчитать достаточно обычное сложение применить соответствующих координат.
Re[3]: Получить координаты каретки ?
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 17.06.03 11:35
Оценка:
Здравствуйте, Alexmoon, Вы писали:

SDB>>GetWindowRect() возвращает координаты относительно экрана, а не относительно непосредственного парента.

A>Совершенно верно замечено. Для взятия координат относительно парента есть функция GetClientRect.

Для получения координат относительно парента используется комбинация GetWindowRect() + ScreenToClient(). А GetClientRect() позволяет узнать координаты клиентской области заданного окошка.

A>а чтобы положение каретки относительно парента едита посчитать достаточно обычное сложение применить соответствующих координат.
- Искренне ваш, Поросенок Пафнутий
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.