Jump to content
  • Advertisement
Sign in to follow this  
qCring

OpenGL window without title bar

This topic is 3048 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

hey guys, I´m writing an openGL application under windows using the WinAPI for the windows-related stuff like window-creation, messaging etc. That works fine so far. But now I want to remove the title bar of the application window and that seems to be more complicated than I thought.. I tried WS_POPUP for the window-style and it worked. BUT the app switches in some kind of totally-crappy-fullscreen-mode where I can´t have windows of other applications overlapping the window of my app. The tab-switch and the initial switch to the fullscreen-mode works pretty slow. I looked at SDL where my problem could be solved with one line of code: SDL_SetVideoMode(width, height, 0, SDL_OPENGL |SDL_SWSURFACE | SDL_NOFRAME ) So my question is: How can I get rid of the crappy title bar in windows and build a nice 'splashscreen-window' with my own control-elements like the steam window or the winamp window. Is there a way of doing that with the WinAPI only? And if I make use of SDL, do I loose my OpenGL 3.x context? adios!

Share this post


Link to post
Share on other sites
Advertisement
How are you creating your window? You're obviously setting fullscreen mode too. Are you sure you need to?

For a window without a title bar, but with a thin border use

CreateWindowEx( WS_EX_TOOLWINDOW, L"WindowName", L"", WS_POPUP | WS_BORDER | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, left, top, width, height, NULL, NULL, GetModuleHandle( NULL ), 0);

Get rid of WS_BORDER if you want.

Share this post


Link to post
Share on other sites
And is there some way, to change the skin of the windows?
I mean to use my own textures for titlebars and borders?
Or somehow preserve their functions (move/resize)?
All I can find is changing the skin of all Windows.
(Not so important, so I don't want a new thread on this)

Share this post


Link to post
Share on other sites
Ok, I got it.
Originally I wanted a window (not fullscreen) to be displayed without the titlebar and it seemed the only way to do this is by using the WS_POPUP flag, which automatically switches the window in fullscreen-mode... not my intention.
I didn´t find any combination of style-flags to get a nude-window without going fullscreen. And in fact there´s no way to do that while initializing the window.
But then I fortunately stumbled on a function to override the window-style and this is doing the job. Now I have my absolutely-naked-no-ugly-titlebar-window YAY :D

SetWindowLong(_hwnd, GWL_style, WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX);

@szecs
Thats possible.. some kind of.. but it´s really complicated. You need to mess around with the message-loop of your application-window in a pretty ugly way to bypass the draw-messages of the control-elements.
I think using a framework like Qt or writing your own minimal GUI-system is the best choice. To preserve a window from resize/move just disable the titlebar using SetWindowLong() after window-creation. No titlebar, no titlebar-functionality.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!