![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как определить позицию чужого окна БЕЗ РАМКИ (рабочую область)? [D7]
kalexi © (2010-01-25 20:17:00)Сабж. Т.е допустим
GetWindowRect(hWindow, r);
дает позицию 100;100 (top;left). Тогда GetPixel(DC, top, left) определит цвет не рабочей области формы а Border'а. Кам можно определить положение рабочейобласти формы?
Игорь Шевченко (2010-01-26 02:24:00) [1]Плохо прочитал вопрос.
Для того, чтобы найти абсолютные координаты клиентской части окна hWnd по его известному ClientRect (0-0, clientwidth-clientheight), достаточно одного вызова MapWindowPoints (hWnd, HWND_DESKTOP, ClientRect, 2);
Игорь Шевченко (2010-01-25 22:49:00) [2]
> GetClientRect - top и left = 0
Было бы странно обратное.
procedure TForm1.Button1Click(Sender: TObject);
var
Rect: TRect;
WinRect: TRect;
begin
Rect := ClientRect;
GetWindowRect (Handle, WinRect);
MapWindowPoints(Handle, HWND_DESKTOP, Rect, 2);
OffsetRect(Rect, -WinRect.Left, -WinRect.Top);
ShowRect(Rect);
end;
kalexi (2010-01-25 20:43:00) [3]GetClientRect - top и left = 0