|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
StayOnTop дополнительного окна
Дополнительное (неглавное) окно (или несколько) создается динмически. Задача - свернуть главное окно так, чтобы дополнительное не сворачивалось и было StayOnTop. Или, как вариант, дополнительное окно поверх всех, но при его активации главное окно не перекрывало другие программы (окна).
Последний раз редактировалось Помидоркин, 30.04.2015 в 17:31. |
#2
|
|||
|
|||
Создавай с родителем Desktop.
Вот пример окна нотификации из одного моего проекта (код не полностью, только создание): Код:
procedure TCustomNotificationForm.CreateParams(var Params: TCreateParams); begin inherited CreateParams(Params); Params.ExStyle := Params.ExStyle Or WS_EX_TOPMOST Or WS_EX_TOOLWINDOW And (Not WS_EX_APPWINDOW); Params.WndParent := GetDesktopWindow; end; |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Помидоркин (01.05.2015)
|
#3
|
||||
|
||||
Класс!!! То что доктор прописал.
Правда я ничего не понял, тупо списал. Надеюсь - со временем разберусь. |
#4
|
|||
|
|||
В декларации в классе не забудь override поставить.
Суть этого прикола в том, что в момент создания окна (окна еще нет, только идет подготовка к его созданию), меняются некоторые параметры, с которыми окно должно быть создано. Теоретически, можно поменять эти параметры у уже созданного окна (через SetWindowLong), но не для всех это срабатывает. Например, не работает нормально для родителя (последняя строчка). |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Помидоркин (04.05.2015)
|