![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Месторасположение объекта... [D6, WinXP]
Shira333 © (2004-10-11 17:23:00)Значит проблема такая... Мне нужно узнать расположение объекта в чужом окне, что бы поверх него создать свой. Ф-цию то я знаю GetWindowRect, но она выдает расположение всего окна, а на ф-ию GetClientRect выдет нули. Когда создается объект, то нужно указать расположение относительно клиентской части окна. Кто знает как узнать расположение уже существующего объекта относительно клиентской части окна???
Alex870 (2004-10-13 23:05:00) [1]Я понял, что объект - это полноценное окно с HWND, только почему r1 получается с помощью GetClientRect?
Because client coordinates are relative to the upper-left corner of a window's client area, the coordinates of the upper-left corner are (0,0).
Если тебе нужно создавать свой объект поверх чужого - получай его координаты (GetWindowRect) и создавай - ведь они будут мировыми, ну если очень хочешь, то используй ScreenToClient, только я не понял зачем это: x:=r2.left-r1.left;y:=r2.top-r1.top;
Shira333 (2004-10-12 17:14:00) [2]Объект - EDIT. А применить пытался так:
h1: HWND; //Окно
h2: HWND; //Эдит
r1, r2: TRect;
x, y: Integer; //Координаты нового объекта в оконной СО
...
GetClientRect(h1, r1);
GetWindowRect(h2, r2);
x:=r2.left-r1.left;
y:=r2.top-r1.top
Alex870 (2004-10-11 19:48:00) [3]А если не секрет - что за объект и как применяешь GetClientRect?