![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Свое главное окно сделать дочерним чужого и наоборот
dva20 © (2006-03-20 17:19:00)Как сделать свое главное окно дочерним чужого, при нажатии на кнопку?
Делал примерно так:
var
wHWND: HWND;
begin
wHWND:= FindWindow('CorelDRW 12.0',nil); //Находим дескриптор
//Становится дочерним, но оно только в панели задач и неразворачивается
Form1.ParentWindow:= wHWND;
//Делаем показать, и оно появляется не активным
Form1.Show;
end;
Так, вот, окно показывается, но оно всегда не активное, на контролах типа Edit выделить значения не получается, хотя изменить можно. Caption окна серый, то есть наверное не активный. Окно передвигать можно как и положено дочернему в нутри родительского. Пробовал разные WinAPI-функции, результат - ноль! Такое ощущение, что это окно вообще никаких сообщение не получает.
Вопрос. Как энто дело правильно организовать?
dva20 (2006-03-20 18:57:00) [21]В первом посте написал. Тот код работает на нажатие кнопки, но существуют проблемы, которые описал уже.
clickmaker (2006-03-20 18:53:00) [22]
> надо на нажатие кнопки уже запущенного(созданного) приложения
а как ты собираешься это нажатие отловить?
dva20 (2006-03-20 18:46:00) [23]Надо. :)
Дополню:
Вот так это работает как надо, но только при создании моего приложения формы, а мне надо на нажатие кнопки уже запущенного(созданного) приложения:
... = class(TForm)
...
protected
procedure CreateParams(var params: TCreateParams); override;
...
procedure TForm2.Createparams(var params: TCreateParams);
var
wHWND: HWND;
begin
inherited;
wHWND:= FindWindow('CorelDRW 12.0',nil);
params.WndParent := ahWnd;
end;
clickmaker (2006-03-20 18:33:00) [24]
> dva20 © (20.03.06 17:19)
а зачем тебе это?