Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как показывать дочернее окно в глобальных координатах ? [D6]


AFROLOV ©   (2002-03-20 13:02:00) 

Проблема в следующем: если форме родителя не изменять, то она отображается там где нужно, если ей поменять родителя то она появляется совсем в другом месте.
Вопрос такой: Как показывать дочернее окно в глобальных координатах ?
procedure TListBoxForm.ShowForm(NP:HWND);
var
pLeft, pTop, pWidth, pHeight:Cardinal;
OldParent:HWND;
begin
if (VarIsEmpty(MainForm.MSWord)=false) then
begin
MainForm.MSWord.ActiveWindow.GetPoint(pLeft, pTop, pWidth, pHeight, MainForm.MSWord.Selection.Range);
end;
ListBox1.Items.Add("Left:="+IntToStr(pleft));
ListBox1.Items.Add("Top:="+IntToStr(pTop));
ListBox1.Items.Add("Parent:="+IntToHex(GetParent(Handle),8));
OldParent:=Windows.SetParent(Handle,NP);//без зтой строчки окно рисуется там где надо.
ListBoxForm.Top:=pTop+pHeight;
ListBoxForm.Left:=pLeft;
Visible:=true;
end;


VuDZ   (2002-03-20 13:07:00) [1]

может ClientToScreen, ScreenToClient?


Наверх

Титульная страница Поиск, карта сайта Написать письмо