![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Активизируя родительское окно, оно не должно перекрывать дочернее [D5, WinME]
MaTaDoR © (2002-01-21 13:32:00)Есть форма (родительская), она порождает новое дочернее. Необходимо сделать так, чтобы активизируя (переведя фокус) дочернее окно не перекрывалось.
nikkie (2002-01-21 16:39:00) [1]>IronHawk, Вячеслав
собс-но в вопросе про MDI ни слова. в Word"e Find диалог - не модальное и не MDI-child окно. тем не менее, при активизации основного окно Find не исчезает. при переключении в другое приложение - не остается поверху, т.е. это не StayOnTop.
такое окно создается с помощью стиля WS_POPUP. для vcl я использовал такой код:
...
protected
procedure CreateWindowHandle(const Params: TCreateParams); ...
override;procedure TForm1.CreateWindowHandle(const Params: TCreateParams);
begin
with Params do begin
WindowHandle := CreateWindowEx(ExStyle, WinClassName, Caption, Style or WS_POPUP,
X, Y, Width, Height, TWinControl(Owner).Handle, 0, WindowClass.hInstance, Param);
end;
end;
только я замечал неприятное поведение такого приложения при использовании кнопки "Show Desktop".
Вячеслав (2002-01-21 16:11:00) [2]Присоединяясь к >IronHawk добавлю, перед подачей форм.шоу используй что-то вроде deferwindowpos(.....), где и указываются неперекрываемые координаты. В принципе, можно вообще всех подвинуть, если сильно надо, могу пример вышеозначенной функции прислать(писал для своих программисток:))).
IronHawk (2002-01-21 13:44:00) [3]Ежели правильно скрейтил обе формы то дочерняя сроду МДИшкой не перекроеться !
Владислав (2002-01-21 13:39:00) [4]FormStyle:=fsStayOnTop;