windowswindoweiffelalways-on-top

How to make an Eiffel Vision2 window always on top?


I created a little Vision2 window with an animation in it.

In my Windows 7 environment, I want this animation to be always visible on top all other windows on my desktop. I'm able to periodically call raise to bring the Vision2-window in front - but I lose focus of my selected window doing that.

To boil it down:

Q1: Is it even possible to keep a window "always on top" all other windows with Vision2 ?

Q2: Is it possible to do it with Eiffel WEL (and Windows 7) ?


Solution

  • Talking about Windows in general, it is not possible to guarantee that a window will be on top of all other windows, because if you have 2 windows that have this property, one of them will be on top of the other. As you will see in the post below, you have 2 categories of windows and z-order:

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

    Assuming you are ok with something on top of all your windows, in WEL, you can use the Win32 API to achieve that by using WEL_WINDOW.set_z_order ({WEL_HWND_CONSTANTS}.hwnd_topmost).

    In Vision, you can also do that by using EV_POPUP_WINDOW and calling `disconnect_from_window_manager' on it.