Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с "вывешиванием" немодального окна

266
21 января 2004 года
mhaturov
901 / / 23.10.2003
Народ, проблема такая:
Видел я в своё время код, в котором очень хитрая штука отрабатывала:
1. При загрузке определённоых форм прога получала их хендлы.
2. После этого можно было открыть отдельную форму (назовём её Ф1), которая хитро отображалась:
а). Если пользователь выбирал форму, хендл которой прога "помнит", то Ф1 отображалась.
б). Если пользователь открывал "левую" форму, то Ф1 скрывалась.
Я помню, что проверка "истинной" формы выполнялась по таймеру. Помню, что при "свёртывании" "главной" формы, Ф1 тоже свёртывалась.
Ф1 была немодальной, но, пока она была открыта, она висела поверх "правильных" форм. При этом как с ней, так и с правильными можно было работать.
Но вот какие API использовались для этого - не помню :{ .
Кто-нибудь подскажет, как "удерживать" немодальную форму поверх "материнской" так, чтобы можно было работать с материнской?
Это мне нужно для следующего:
из главной формы вызывается определённая процедура. пока она выполняется, должна отображаться стандартная форма с прогрессбаром (вариант с включением процедуры в "прогрессбарную" форму, равно и размещение прогрессбара на главной форме не подходят). При этом "прогрессбар" должен висеть над материнской формой. по окончании выполнения процедуры или при возникновении определённых событий "прогрессбар" должен скрываться.
648
21 января 2004 года
Tiraspolsky
220 / / 23.07.2003
Цитата:
Originally posted by mhaturov
Народ, проблема такая:
Но вот какие API использовались для этого - не помню :{ .
Кто-нибудь подскажет, как "удерживать" немодальную форму поверх "материнской" так, чтобы можно было работать с материнской?



Попробуй

 
Код:
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW + SWP_NOSIZE + SWP_NOMOVE + SWP_NOACTIVATE
266
21 января 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by Tiraspolsky


Попробуй
 
Код:
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW + SWP_NOSIZE + SWP_NOMOVE + SWP_NOACTIVATE


Спасибо! Кажется, как раз то, что надо!:)

319
21 января 2004 года
xelos
577 / / 27.02.2003
Цитата:
Originally posted by mhaturov

Спасибо! Кажется, как раз то, что надо!:)


Z-order у формы должен быть максимальным, как и было указано, он задается максимальным при передаче параметра HWND_TOPMOST. Если два таких окна рисуешь, то нужно изменять Z-order в зависимости от того, какое окно сверху будет.

266
22 января 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by xelos

Z-order у формы должен быть максимальным, как и было указано, он задается максимальным при передаче параметра HWND_TOPMOST. Если два таких окна рисуешь, то нужно изменять Z-order в зависимости от того, какое окно сверху будет.


Спасибо большое!:)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог