Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.22;
Скачать: CL | DM;

Вниз

Пересчет координат   Найти похожие ветки 

 
Dmk ©   (2002-07-09 03:42) [0]

Подскажите пожалуйста, как можно пересчитать координаты левого верхнего угла Form1 в координаты Form2?
Нужно узнать находится ли Form1 над Form2.
Или можно узнать сколько и какие формы находятся над нужной?


 
MBo ©   (2002-07-09 06:02) [1]

left и top форм в системе координат экрана известны, ничего пересчитывать не надо.


 
Dmk ©   (2002-07-09 20:20) [2]

Нужно узнать координаты у Child относительно Normal формы.


 
pusrg ©   (2002-07-09 20:37) [3]

Вообще-то если объект Child, то его координаты - это координаты относительно парента...
Для того чтобы узнать относительное положение объекта относительно другого, пользуйся ClientToScreen и ScreenToClient.


 
Dmk ©   (2002-07-09 21:07) [4]

Спасибо! Попробую.


 
Proton ©   (2002-07-11 02:32) [5]

The MapWindowPoints function converts (maps) a set of points from a coordinate space relative to one window to a coordinate space relative to another window.

int MapWindowPoints(

HWND hWndFrom, // handle of window to be mapped from
HWND hWndTo, // handle of window to be mapped to
LPPOINT lpPoints, // address of structure array with points to map
UINT cPoints // number of structures in array
);


 
Юрий Зотов ©   (2002-07-11 03:01) [6]

> Или можно узнать сколько и какие формы находятся над нужной?

MapWindowPoints решает проблему, но не полностью. Потому что одной точки для этой задачи недостаточно - ведь если Form1 лежит над Form2, то в рамках Form2 может находиться ЛЮБОЙ из четырех углов Form1, или даже вовсе ни одного угла. К чему тогда привязываться? Не к чему.

Проверять надо не отдельные точки, а пересечение прямоугольников окон. См. EnumWindows (или Screen.Forms, если интересуют только свои формы), GetWindowRect и IntersectRect. После завершения цикла получаем хэндлы всех окон верхнего уровня, пересекающихся с заданным окном.



Страницы: 1 вся ветка

Текущий архив: 2002.07.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
1-70748
AlekseyK
2002-07-09 10:44
2002.07.22
Как найти слово в тексте если текст дан ввиде переменной string ,


1-70726
avr555
2002-07-10 20:47
2002.07.22
Поиск и замена в Word е


14-70911
copyr25
2002-06-26 04:52
2002.07.22
Так скучно ночью! Я же знаю, многие


3-70618
RDA
2002-06-29 15:11
2002.07.22
Изменения в наборе данных


1-70692
SadStar
2002-07-11 02:42
2002.07.22
Запутался в трех строках кода при работе с TValueListEditor