Click to See Complete Forum and Search --> : Simulating MDI, or MDI on an SDI-like background


April 9th, 1999, 11:11 AM
Hi!

We have been given a graphic design for a product which, 90% of the time, is effectively an SDI style program, with a set of controls embedded into a fixed background. Occationally, the design specifies that the user can open a set of child windows displaying (but not editing) the contents of a document related to the application. These child windows in the design behave exactly like MDI child windows. (Lessee... to give you a rough idea, imagine that Solitaire had support for opening Deck display child windows on top of the normal Solitaire background, that when minimized appear as typical MDI style minimized children along the bottom of the Solitaire window...)

Alas, the designers, not being programmers, didn't realize that having MDI child windows which overlap an SDI style interface isn't easy to do - in fact I see no way of accomplishing it with the normal MDI client support.

We don't want to tear this design up and try again, so our fallback is to make each of the "child" windows normal Overlapped windows, but that can be irritating to the user. So we're curious as to whether anyone knows of a way we could fake MDI support over our main window in some fashion, or even trick the standard MDI support into working. Any ideas?

I guess the key MDI features we want to keep are: 1) When clicking on the controls in the main window, the child window deactivates, but doesn't move behind the main window. 2) The child window doesn't have an entry in the Task bar. 3) When the child window is minimized, it shows up as a small title bar at the bottom of the main window. We can probably get away without clipping the child windows to the main window - I don't see that as a big issue.

-->Steve Bennett

Paul McKenzie
April 9th, 1999, 01:36 PM
I don't know if we're talking the same thing, but
is the design that you have in mind similar to
the way that C++ Builder or the way Symantec does
SDI in the Visual Cafe UI? Basically, the app
(by default) starts up as just a menu bar. The
child windows are displayed depending on the user
interaction with the program (i.e. "new project"
brings up a new project window). The "child
windows" are exactly as you describe. If you
click on another window, the child just loses
focus. Click on the main app, and the children
still appear on top. Minimize them and the
child minimizes to the bottom of the main form.
The child windows can move over the entire
desktop instead of being contained within the
frame of the application window.

If this is it, the good news is that it can and
has been done. Maybe you can get a demo (if you
don't have it already) of one of the apps
mentioned. You can see if this is the way to go.

The bad news is that implementation may be very
tricky...

Regards,

Paul McKenzie