Как сделать так, чтобы окно Eiffel Vision2 всегда было сверху?

Я создал маленькое окно Vision2 с анимацией в нем.

В моей среде Windows 7 я хочу, чтобы эта анимация всегда была видна поверх всех других окон на моем рабочем столе. Я могу периодически вызывать raise, чтобы вывести окно Vision2 на передний план, но при этом я теряю фокус выбранного окна.

Чтобы уварить это:

Q1: Можно ли вообще держать окно «всегда поверх» всех остальных окон с помощью Vision2?

Q2: Можно ли это сделать с Eiffel WEL (и Windows 7)?


person Birliban    schedule 06.01.2014    source источник


Ответы (1)


Говоря о Windows в целом, невозможно гарантировать, что окно будет поверх всех остальных окон, потому что если у вас есть 2 окна, обладающих этим свойством, одно из них будет поверх другого. Как вы увидите в посте ниже, у вас есть 2 категории окон и z-порядок:

http://blogs.msdn.com/b/oldnewthing/archive/2005/11/21/495246.aspx

Предполагая, что у вас все в порядке с чем-то поверх всех ваших окон, в WEL вы можете использовать Win32 API для достижения этого, используя WEL_WINDOW.set_z_order ({WEL_HWND_CONSTANTS}.hwnd_topmost).

В Vision вы также можете сделать это, используя EV_POPUP_WINDOW и вызвав для него `disconnect_from_window_manager'.

person Emmanuel Stapf    schedule 07.01.2014
comment
Спасибо за объяснение разницы между top и topmost, а также :) - person Birliban; 07.01.2014