Главная страница
    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.45 MB
Время: 0.006 c
1-70723
nitro313
2002-07-11 14:37
2002.07.22
Как присвоить к Caption строковое значение в одинарных кавычках?


3-70636
Explorer
2002-07-01 13:00
2002.07.22
try...except при коннекции


3-70610
Work_NOV
2002-06-28 13:28
2002.07.22
Использование пакетов ORACLE в программе


8-70831
amid
2002-03-14 20:47
2002.07.22
tiff файлы в Delphi


14-70910
Ivanov I
2002-06-25 22:39
2002.07.22
Помогитееееееееееее





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский