Archived

This topic is now archived and is closed to further replies.

DirectX fullscreen with a window inside?

This topic is 5379 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

Hello fellow developers, I am trying to create a normal Windows sub-window (createwindow()) while in DirectX Fullscreen mode. However, whenever I try this, my program just crashes. Has anyone tried this? I am trying to display an Active X control within my Direct X App. If I try this with DirectX Windowed mode, it works fine, but I need to be in fullscreen mode. If anyone has any advice or suggestions, they would be most appreciated. Thanks, -Gilderoot

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Hi
I am not sure but I think you cannot create any window while in fullscreen mode. Fullscreen is a special window mode where you have exactly one window, covering the whole screen, and thus you cannot have any other windows displayed(but they still exist in background).
You may try to create your window and not display it (but it wouldn''t be much useful
So they answer is: no, you cannot create sub windows in fullscreen mode. Sorry.-

Share this post


Link to post
Share on other sites
Hi
I am not sure but I think you cannot create any window while in fullscreen mode. Fullscreen is a special window mode where you have exactly one window, covering the whole screen, and thus you cannot have any other windows displayed(but they still exist in background).
You may try to create your window and not display it (but it wouldn''t be much useful
So they answer is: no, you cannot create sub windows in fullscreen mode. Sorry.-

Share this post


Link to post
Share on other sites
Not sure how your doing it. But I know for a fact if your using DirectDraw in Exclusive/Fullscreen mode that it wont work. I''m not familiar enoguh with Direct3D''s initialization to confirm it works the same as DD but I assume it does.

In order to have maximum speed double buffering exclusive/fullscreen mode gets EXCLUSIVE access to the primary graphics surface (your screen). It can then simply swap the pointer to the backbuffer with the pointer to the frontbuffer when you Flip (or Present?). This is done because switching two 32 bit values is much faster than copying ScreenWidth*ScreenHeight*BitDepth values

In windowed mode the entire backbuffer is copied pixel by pixel to the frontbuffer (as far as I know), because the screen does not exclusively belong to your application. Therefore Windows can draw on it (Controls/MessageBoxes/OtherWindows/Etc).

No for a solution to your problem. When calling CreateWindow set the style flag to CW_OVERLAPPED_WINDOW (I think thats it). And set the size to the size of the screen. Then set up your window like you would for windowed mode. this basically replicates fullscreen without using exclusive mode.

Of course this explanation pertains to DirectDraw, from what I did in Direct3D I believe the window setup might be handled for you if you use a certain method of initing D3D, if so you should write your own window creation code like mentioned above.

Share this post


Link to post
Share on other sites
Thanks for the tips. I had heard there may be a way to do this with DirectX 9, but perhaps I was mistaken. I am using Direct3D, so DirectDraw wouldn''t help. I will try the overlapped mode. I was hoping to do this in normal fullscreen mode, so I can utilize the performance.

If anyone has any other tips or ideas on this, I''d love to hear them.

Thanks,
-Gilderoot

Share this post


Link to post
Share on other sites