Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.22;
Скачать: CL | DM;

Вниз

Проблема с свойством "Stay On Top"   Найти похожие ветки 

 
Help   (2004-07-12 14:07) [0]

Добрый день. Есть некая программа с MainForm у которой в свойствах не указано "поверх всех", т.е. обычная главная форма. В процессе работы возникает необходимость в создании дополнительных окон, которые должны располагаться повер всех (в том числе окон и других приложений), пытался это сделать и через свойство формы FormStyle и через вызов в конструкторе SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE). Результат - созданная форма располагается поверх главной, но стоит сделать активным окно любого другого приложения (или свернуть гл. форму), как моё окно исчезает.... В чём ошибка и как сделать, чтобы создаваемые в процессе работы программы окна железно располагались поверх других?


 
DVM ©   (2004-07-12 14:20) [1]

Ну решений может быть несколько.
Попробуй вторичные окна сделать модальными.(ShowModal)
Еще у них можно обрабатывая WM_WINDOWPOSCHANGING запретить перекрывание их другими окнами.
Можно при выборе вторичного окна отменять Stay On Top у главной формы, а потом возвращать.
А еще наверное лучше так писать:
SetWindowPos(hChildForm, hMainForm, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE).


 
Help   (2004-07-12 14:33) [2]

>> Попробуй вторичные окна сделать модальными.(ShowModal)
к сожалению, такой вариант не подходит, т.к. главная форма должна быть активной

>> Еще у них можно обрабатывая WM_WINDOWPOSCHANGING запретить перекрывание их другими окнами.
а если окно другого приложения распахнуто на весь экран, а мне мою форму надо поверх ....

>> Можно при выборе вторичного окна отменять Stay On Top у главной формы, а потом возвращать.
у главной формы свойство stayontop - отсутствует, нет его, в этом вся и проблема. Стоит главному окну сделаться не активным, как сразу все дочерние окна (не смотря на наличие свойства stayontop) "исчезают"

>> А еще наверное лучше так писать:
>> SetWindowPos(hChildForm, hMainForm, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE).
такой вариант не помагает


 
DVM ©   (2004-07-12 14:40) [3]


> активным, как сразу все дочерние окна (не смотря на наличие
> свойства stayontop) "исчезают"

Обрабатывай активацию окна тогда и двмгай все открытые дочерние окна наверх. Так будет работать точно.


 
Help   (2004-07-12 15:04) [4]

>> Обрабатывай активацию окна тогда и двмгай все открытые дочерние окна наверх. Так будет работать точно.

Если кликнуть на окно другого приложения, метод FormDeactivate не вызывается....



Страницы: 1 вся ветка

Текущий архив: 2004.08.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
3-1091204257
Донской
2004-07-30 20:17
2004.08.22
Переименование поля в ACCESS из дельфи


1-1091858043
Tika-Z
2004-08-07 09:54
2004.08.22
Картинки на форме и на кнопках


1-1091625952
Белый волк
2004-08-04 17:25
2004.08.22
Проблема при установке одной из библиотек RX


3-1090833888
koks
2004-07-26 13:24
2004.08.22
вложенный select ???


14-1091777066
VID
2004-08-06 11:24
2004.08.22
Зацените, плиз...