Sign in to follow this  
Burnt_Fyr

Messageboxes, tabcontrols, directx oh my

Recommended Posts

Burnt_Fyr    1665

tl,dr: What windowstyles/functions can i use to force a message box to display over directx render windows.

 

In my current project, I've got a main window, a tab control, a child window for the tab, and it has a child window with a directx swapchain bound to it.

hwndmain
-htab
-htabview1
--h3dview (has directx swapchain)


When the user wants to open a file, I check to see if one is open, and if so pop open a message box to ask if they would like to save the current file. This message box does not pop up over of the childwindow with the swapchain. It will appear if any other tab window is showing,however, eventually each tab will have 1 or more swapchains attached to it. If i press a key that the Messagebox responds to(such as escape or alt) then it is drawn correctly.

Edited by Burnt_Fyr

Share this post


Link to post
Share on other sites
ongamex92    3255

If you are using WinApi then look at that : http://msdn.microsoft.com/en-us/library/windows/desktop/ms632600(v=vs.85).aspx

 

---->

 

WS_CLIPCHILDREN 0x02000000L

Excludes the area occupied by child windows when drawing occurs within the parent window. This style is used when creating the parent window.

 

That should work because winapi widgets are actually child wnds.

Share this post


Link to post
Share on other sites
Burnt_Fyr    1665

If you are using WinApi then look at that : http://msdn.microsoft.com/en-us/library/windows/desktop/ms632600(v=vs.85).aspx

 

---->

 

WS_CLIPCHILDREN 0x02000000L

Excludes the area occupied by child windows when drawing occurs within the parent window. This style is used when creating the parent window.

 

That should work because winapi widgets are actually child wnds.

Clipchildren is already specified for hwndMain, and the message box appears fine on any tab except the one containing the window with the d3dswapchain. And in win32, there are no "widgets", windows, and controls only

Share this post


Link to post
Share on other sites
Burnt_Fyr    1665

The WS_CLIPCHILDREN option didn't work for me.
I now simply call ShowWindow(..., SW_MINIMIZE);, this works for my needs (including ShowCursor(true)

did you read the link i posted for you?

Share this post


Link to post
Share on other sites
Burnt_Fyr    1665

Looking at some other projects, it seems that my test project with multiple swapchains has the same issue, so it is unlikely related to the tabcontrol.

Share this post


Link to post
Share on other sites
Burnt_Fyr    1665

I've now narrowed down the problem to just a single child window. I've got a test project that creates a main window, and a child window, my renderer is coupled to the child window, and I cannot get a message box to show above the window.

Share this post


Link to post
Share on other sites
Burnt_Fyr    1665

This thread pointed me to a solution. I was not using begin/end paint, which caused windows to do... something. I'm still not 100% sure what was going on, as I don't see how it would  have affected z order. Can someone with some more experience shed some light?

Edited by Burnt_Fyr

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this