Click to See Complete Forum and Search --> : UI design question


DHillard
December 1st, 2006, 08:43 AM
I have created a custom control (chart control) that responds to a double-click by making itself "blowup" to full-screen. I am doing this by getting and saving its current location and size on its parent window, then changing the parent window to the desktop, then doing a MoveWindow() for the control to the size of the desktop.

Another double-click changes the owner from the desktop, back to its original owner and places it back into position as it was before going full-screen.

This is all working fine, but I noticed something looking strange.

While the control is shown full-screen, if I alt-TAB to show the application that originally hosted the control, of course the contol no longer shows on that window, because its owner now is the desktop, and that's where it's displayed.

I guess ideally, the control would be copied somehow so the same control could be displayed in two different places, but I have a feeling this is not possible.

So, that brings me back to the original problem, or my interpretation of it being a problem, which is "Is this how this should work from a UI standpoint?" Normally, one wouldn't alt-tab back to the application while showing the control full-screen, but it is possible.

Has anyone seen this functionality before in an application?

Am I approaching this the wrong way?

Anyone have any ideas on this?

Thanks.

SuperKoko
December 1st, 2006, 05:45 PM
I am doing this by getting and saving its current location and size on its parent window, then changing the parent window to the desktop, then doing a MoveWindow()

It is a bad thing.
Your control will now send its event notification messages to the desktop window instead of your window. Plus, it's very un-cooperative... Imagine if two applications did the same thing.

If you want to do that, you should simply remove the border of the parent window of your control, then, resize your top-level window as well as the control so that each of them fits the entire screen.


Normally, one wouldn't alt-tab back to the application while showing the control full-screen, but it is possible.

As a user, I Alt+Tab-ize between applications a lot, and I want to use a multitasking OS, so I absolutely refuse to use an application that assumes that I'll keep the focus on it for all the time it wants. I am the master of my computer, not the opposite!

So, your application, even if it has a fullscreen mode, must allow users to go to other applications with Alt+Tab.

DHillard
December 1st, 2006, 06:16 PM
Good points. Thanks for the tips. I'll change it to keep the parent window the application that hosts it, then show the host application full screen, with the client control moved to occupy the full client rectangle of the host.

Is that the jist of your method?

SuperKoko
December 2nd, 2006, 06:44 AM
Good points. Thanks for the tips. I'll change it to keep the parent window the application that hosts it, then show the host application full screen, with the client control moved to occupy the full client rectangle of the host.

Is that the jist of your method?
I don't know what "jist" does mean, and google "define:" doesn't help.
Nevertheless, it's the correct solution.