Running an OpenGL window in front of the Windows 7 taskbar

If you are a new Irrlicht Engine user, and have a newbie-question, this is the forum for you. You may also post general programming questions here.
Post Reply
Vir
Posts: 14
Joined: Thu Feb 21, 2013 10:00 pm

Running an OpenGL window in front of the Windows 7 taskbar

Post by Vir »

I need a full-screen window that will span two displays, which means I can't use DirectX in full-screen mode. I've had some success with using an OpenGL window, but it's always behind the taskbar in Windows 7. This means that I need to set the taskbar to auto-hide, which isn't a great solution. I remember that in Windows XP, there used to be a setting to toggle the taskbar to "always on top", but this is apparently gone in Windows 7. So is there any way to make the OpenGL Irrlicht window stay in front of the taskbar? I'd rather not have to have the users install third-party software to allow this, although I feel like there has to be some way to do it, whether through the Windows API or otherwise.
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Re: Running an OpenGL window in front of the Windows 7 taskb

Post by hybrid »

Not sure if this is possible, as Windows 7 seems to have the on top fixed.
Vir
Posts: 14
Joined: Thu Feb 21, 2013 10:00 pm

Re: Running an OpenGL window in front of the Windows 7 taskb

Post by Vir »

It has to be possible. Applications like Photoshop and Powerpoint can go into full screen mode such that they occlude the taskbar. Kiosk programs running on Windows also occlude the taskbar. I suppose it probably requires some Windows API knowledge, which I admittedly don't have much knowledge of.
Vir
Posts: 14
Joined: Thu Feb 21, 2013 10:00 pm

Re: Running an OpenGL window in front of the Windows 7 taskb

Post by Vir »

Solved!

I just used this line after the Irrlicht window was initialized:

Code: Select all

SetWindowPos(reinterpret_cast<HWND>(videoDriver->getExposedVideoData().OpenGLWin32.HWnd), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE & SWP_NOSIZE);
I also had to include Windows.h.
Post Reply