Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Поставить свое окно поверх другого


Автор: jhonyxakep 5.3.2011, 12:18
САБЖ. Надо показывать окно своей программы поверх другого окна (например блокнота), при этом оставаться обычным окном, относительно к другим окнам. 

Автор: Snowy 5.3.2011, 15:56
А что, разве твоё окно показывается под блокнотом?
Или оно необычное?

Автор: jhonyxakep 6.3.2011, 02:53
Цитата(Snowy @  5.3.2011,  15:56 Найти цитируемый пост)
А что, разве твоё окно показывается под блокнотом?Или оно необычное?


Имеется в виду, что окно блокнота на текущий момент активное.

Автор: northener 6.3.2011, 03:29
Цитата(jhonyxakep @  6.3.2011,  02:53 Найти цитируемый пост)
Имеется в виду, что окно блокнота на текущий момент активное. 

"Экранную клавиатуру" делаешь?

Автор: jhonyxakep 6.3.2011, 09:30
Нет, это совершенно другой проект и другая система. Проблема в самой реализации, надо поставить своё окно всегда поверх другого окна, при этом StayOnTop не подходит, тк будут перекрыватся другие окна.

Автор: Keeper89 6.3.2011, 14:23
Ну ставь StayOnTop только если активен блокнот, если что-то другой снимай флажок.

Автор: jhonyxakep 7.3.2011, 03:10
Цитата(Keeper89 @  6.3.2011,  14:23 Найти цитируемый пост)
Ну ставь StayOnTop только если активен блокнот, если что-то другой снимай флажок.


К примеру у нас 3 окна. Блокнот, моё приложение, и другое окно, которое имеет функцию stayOnTop (Диспетчер задач к примеру).

Теперь при активации блокнота моё окно получает параметр StayOnTop, и перекрывает диспетчер задач.

Или я чего-то недопонимаю?

Автор: Keeper89 7.3.2011, 13:41
Цитата(jhonyxakep @  7.3.2011,  03:10 Найти цитируемый пост)
Теперь при активации блокнота моё окно получает параметр StayOnTop, и перекрывает диспетчер задач.

А нужно чтобы перекрывало или нет?

Автор: jhonyxakep 7.3.2011, 13:44
Обоже.  smile 

Надо, чтобы моё окно было повверх другого, а не всех окон

Автор: northener 7.3.2011, 14:31
Цитата(jhonyxakep @  7.3.2011,  13:44 Найти цитируемый пост)
Надо, чтобы моё окно было повверх другого, а не всех окон

SetWindowPos параметр hWndInsertAfter не поможет?

Автор: jhonyxakep 8.3.2011, 03:19
Но в этом случае надо будет проверять, активно-ли окно блокнота?

Автор: MetalFan 9.3.2011, 17:58
jhonyxakep, а что мешает это делать?

Автор: Keeper89 9.3.2011, 19:23
Цитата(MetalFan @  9.3.2011,  17:58 Найти цитируемый пост)
а что мешает это делать? 

О боже.

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

Автор: MetalFan 10.3.2011, 13:46
Keeper89, а что тут догадываться... надо чтобы одно окно ВСЕГДА было поверх другого.
Я так понял.
Может просто установить нужному окну Parent'а, тогда будет поверх содержимого искомого окна, правда не сможет "выезжать" за его пределы...

Автор: jhonyxakep 12.3.2011, 17:14
Цитата(MetalFan @  10.3.2011,  13:46 Найти цитируемый пост)
Keeper89, а что тут догадываться... надо чтобы одно окно ВСЕГДА было поверх другого.Я так понял.Может просто установить нужному окну Parent'а, тогда будет поверх содержимого искомого окна, правда не сможет "выезжать" за его пределы...



А вот это хорошее решение. Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)