C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
ОКНА
Booster
Отправлено: 16.08.2005, 12:24


Ученик-кочегар

Группа: Участник
Сообщений: 29



Как установить окно проги поверх всех окон в винде?
Gedeon
Отправлено: 16.08.2005, 12:38


Ветеран

Группа: Модератор
Сообщений: 1742



SetForegroundWindow(...);
olegenty
Отправлено: 16.08.2005, 12:48


Ветеран

Группа: Модератор
Сообщений: 2412



либо FromStyle = fsStayOnTop
смотря, что Booster имел в виду.
Vlad
Отправлено: 16.08.2005, 12:59


Машинист паровоза

Группа: Участник
Сообщений: 231



Если хочешь менять жинамически, то тебя спасет — SetWindowPos, со всем многообразием выбора, используемое в этой функции
AVC
Отправлено: 17.08.2005, 08:17


Ветеран

Группа: Модератор
Сообщений: 1583



Win2K из собственных наблюдений
StayOnTop — слишком жестоко
SetForegroundWindow(...); похоже срабатывает только один (первый) раз и это где то на уровне винды. А потом просто мигание в taskbar'e.
SetWindowPos и прочие игры с Z order'ом работали нестабильно в проекте на Builder.

В рабочем проекте (без кнопки в taskbar) остановился на варианте
if (SetForegroundWindow(Application->Handle) == 0) мигание_иконкой_в_tray

Черт! Решил еще раз посмотреть и не смог добиться эффекта не срабатывания SetForegroundWindow (Сегодня работает как положено). А ведь был, ей богу! И отнял не мало времени на поиск решения.
Vlad
Отправлено: 17.08.2005, 08:43


Машинист паровоза

Группа: Участник
Сообщений: 231



Ну не знай, не знай, у меня много где использовалось SetWindowPos, даже не только в Билдере, и всегда работало как швейцарские часы. Ну это видно батенька — судьба!.............

Вернуться в Вопросы программирования в C++Builder