Проблема с "вывешиванием" немодального окна
Видел я в своё время код, в котором очень хитрая штука отрабатывала:
1. При загрузке определённоых форм прога получала их хендлы.
2. После этого можно было открыть отдельную форму (назовём её Ф1), которая хитро отображалась:
а). Если пользователь выбирал форму, хендл которой прога "помнит", то Ф1 отображалась.
б). Если пользователь открывал "левую" форму, то Ф1 скрывалась.
Я помню, что проверка "истинной" формы выполнялась по таймеру. Помню, что при "свёртывании" "главной" формы, Ф1 тоже свёртывалась.
Ф1 была немодальной, но, пока она была открыта, она висела поверх "правильных" форм. При этом как с ней, так и с правильными можно было работать.
Но вот какие API использовались для этого - не помню :{ .
Кто-нибудь подскажет, как "удерживать" немодальную форму поверх "материнской" так, чтобы можно было работать с материнской?
Это мне нужно для следующего:
из главной формы вызывается определённая процедура. пока она выполняется, должна отображаться стандартная форма с прогрессбаром (вариант с включением процедуры в "прогрессбарную" форму, равно и размещение прогрессбара на главной форме не подходят). При этом "прогрессбар" должен висеть над материнской формой. по окончании выполнения процедуры или при возникновении определённых событий "прогрессбар" должен скрываться.
Цитата:
Originally posted by mhaturov
Народ, проблема такая:
Но вот какие API использовались для этого - не помню :{ .
Кто-нибудь подскажет, как "удерживать" немодальную форму поверх "материнской" так, чтобы можно было работать с материнской?
Народ, проблема такая:
Но вот какие API использовались для этого - не помню :{ .
Кто-нибудь подскажет, как "удерживать" немодальную форму поверх "материнской" так, чтобы можно было работать с материнской?
Попробуй
Код:
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW + SWP_NOSIZE + SWP_NOMOVE + SWP_NOACTIVATE
Цитата:
Originally posted by Tiraspolsky
Попробуй
Попробуй
Код:
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW + SWP_NOSIZE + SWP_NOMOVE + SWP_NOACTIVATE
Спасибо! Кажется, как раз то, что надо!:)
Цитата:
Originally posted by mhaturov
Спасибо! Кажется, как раз то, что надо!:)
Спасибо! Кажется, как раз то, что надо!:)
Z-order у формы должен быть максимальным, как и было указано, он задается максимальным при передаче параметра HWND_TOPMOST. Если два таких окна рисуешь, то нужно изменять Z-order в зависимости от того, какое окно сверху будет.
Цитата:
Originally posted by xelos
Z-order у формы должен быть максимальным, как и было указано, он задается максимальным при передаче параметра HWND_TOPMOST. Если два таких окна рисуешь, то нужно изменять Z-order в зависимости от того, какое окно сверху будет.
Z-order у формы должен быть максимальным, как и было указано, он задается максимальным при передаче параметра HWND_TOPMOST. Если два таких окна рисуешь, то нужно изменять Z-order в зависимости от того, какое окно сверху будет.
Спасибо большое!:)