Как сделать окно поверх всех окон Винды?

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
kreator
✯ Ветеран ✯
Сообщения: 5160
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Как сделать окно поверх всех окон Винды?

Сообщение kreator »

Собственно, сабж. Естественно, нужно программно.
We are hard at work… for you. :)
PavelNK
Старожил
Сообщения: 279
Зарегистрирован: 15 Март 2011, 8:02

Как сделать окно поверх всех окон Винды?

Сообщение PavelNK »

Если память не изменяет, то SetWindowPos
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Как сделать окно поверх всех окон Винды?

Сообщение Yufil »

В последних версиях винды, похоже, и это не работает.

По крайней мере, старый менеджер компиляции cmp60 сейчас не вылазит наверх :( , стар стал, наверное...

Можно попробовать просто

0{Prop:Active} = True

Или

SetTarget(,1)
0{Prop:Active} = True
SetTarget
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3289
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Как сделать окно поверх всех окон Винды?

Сообщение Дед Пахом »

У меня вот такая конструкция работает:

Код: Выделить всё

Routine::BringToTop ROUTINE
  DATA
  CODE
  IF gTHD:FrameRef{PROP:Iconize} = TRUE
    gTHD:FrameRef{PROP:Iconize} = FALSE
    LOOP 10 TIMES
      IF SetForegroundWindow(gTHD:FrameRef{PROP:Handle}) = TRUE
        BREAK
      END
    END
  END
  
  IF Window{PROP:Active} <> TRUE
    Window{PROP:Active} = TRUE
  END
gTHD:FrameRef - это APPLICATION
Window - это MDI child window
С уважением, ДП
kreator
✯ Ветеран ✯
Сообщения: 5160
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Как сделать окно поверх всех окон Винды?

Сообщение kreator »

Спасибо, ДП. Приложение и окно поднимаются. А вот вроде как есть возможность сделать окно, которое всегда будет висеть поверх других приложений, типа без возможности переключиться на другое приложение. Или я что-то не так понимаю?
We are hard at work… for you. :)
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Как сделать окно поверх всех окон Винды?

Сообщение Yufil »

А какая Windows? У меня до какого-то момента было всё OK, а потом облом-с, правда, юзал SetWindowPos
Возможно, это для 64-битных актуально.

Например,
http://www.dxsdata.com/2013/03/c-bring- ... vista-7-8/
https://groups.google.com/forum/#!topic ... Hk7IkAAf9s

и много других... Сейчас пару приложений пустил (тот же cmp60) под win7/64 - да, не работает
Сейчас реализовал по-другому, но осадок остался :)
kreator
✯ Ветеран ✯
Сообщения: 5160
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Как сделать окно поверх всех окон Винды?

Сообщение kreator »

Yufil писал(а):А какая Windows?
Win7-64. Повторил код ДП один в один. В широкую эксплуатацию не скоро пустим. Пока идёт сбор требований заказчика.
We are hard at work… for you. :)
Ответить