Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];

Вниз

Проблема с свойством "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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.049 c
3-1090847537
vlad_ri
2004-07-26 17:12
2004.08.22
Добавление lookup-поля в ClientDataSet в runtime


14-1091798793
race1
2004-08-06 17:26
2004.08.22
интернет-радио


3-1090559510
korvin
2004-07-23 09:11
2004.08.22
Смена стандартных SYSDBA и masterkey


4-1089310683
my_name
2004-07-08 22:18
2004.08.22
Форму на панель задач


3-1090902152
Jiny
2004-07-27 08:22
2004.08.22
Как перерисовать значение по формуле из табл. в DBgrid ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский