Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.07.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.142 c
7-70942
sir_musatov
2002-04-29 11:49
2002.07.22
функция format в Win2k


3-70664
MikeGavrilov
2002-07-02 12:42
2002.07.22
Помогите с FreeReport ом


3-70667
Oleon
2002-06-28 12:49
2002.07.22
Как програмно обработать ошибку.


14-70896
PVOzerski
2002-06-25 12:30
2002.07.22
Кто подскажет, где в Сети можно найти/скачать УДК?


1-70803
Eugene Lachinov
2002-07-10 11:14
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский