Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[44.200.230.43] |
|
Сообщ.
#1
,
|
|
|
Всем привет, кто-нибудь знает как создать в каком-нибудь окне дочернее, которое бы
всегда перекрывало все остальные дочерние, даже если у них нет WS_CLIPSIBLINGS? Z-order не помогает (SetWindowPos(HWND_TOP)), другие дочерние окна не хотят делить поверхность экрана с моим, мерцают, добиваются вывода своих пикселей на поверхность. Нужно полностью и надежно перекрыть все содержимое окна своим дочерним. |
Сообщ.
#2
,
|
|
|
Цитата face_check @ как создать в каком-нибудь окне дочернее, которое бы всегда перекрывало все остальные дочерние Звучит как очень наглая, навязчивая реклама. Потому что другой цели такого действа я, откровенно говоря, не вижу. Если окно своё, то вопрос решается тривиально, сменой контейнеров. Но, судя по всему, вопрос про окно чужого приложения. В этом случае остаётся посоветовать только метод подмены копией, как это делает сама Windows во время подвисаний приложения. |
Сообщ.
#3
,
|
|
|
Цитата face_check @ Z-order не помогает (SetWindowPos(HWND_TOP)), другие дочерние окна не хотят SetWindowPos(HWND_TOPMOST, ...) тоже не помогает? |
Сообщ.
#4
,
|
|
|
Цитата SetWindowPos(HWND_TOPMOST, ...) тоже не помогает? HWND_TOPMOST - это для top-level окон, чтобы сделать их поверх всех. Для дочерних окон ставится HWND_TOP и нет, это тоже не помогает. Цитата Звучит как очень наглая, навязчивая реклама. Ничего наглого, все это - лишь попытка сделать грязный костыль к глючащему приложению, исходники которго потерялись. Цитата В этом случае остаётся посоветовать только метод подмены копией, как это делает сама Windows во время подвисаний приложения. Можно поподробнее? Ни о чем таком не слышал. |
Сообщ.
#5
,
|
|
|
Цитата face_check @ HWND_TOPMOST - это для top-level окон, чтобы сделать их поверх всех. Для дочерних окон ставится HWND_TOP и нет, это тоже не помогает. Попробуй найти верхнее дочернее окно при помощи GetTopWindow и передать его хэндл в SetWindowPos, вместо HWND_TOP |
Сообщ.
#6
,
|
|
|
Сообщ.
#7
,
|
|
|
Цитата face_check @ Нужно полностью и надежно перекрыть все содержимое окна своим дочерним. Можно попытаться так: 1. Сделать всем другим окошкам "Disable" И опыты начать с главного окна - EnableWindow(hwnd_parent,FALSE); 2. Сделать своему дочернему SetFocus(hwnd); ----- Есть ещё "BringWindowToTop", но мне это не очень понравилось. |