CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 2 of 2
  1. #1
    Guest

    Simulating MDI, or MDI on an SDI-like background

    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



  2. #2
    Join Date
    Apr 1999
    Posts
    27,449

    Re: Simulating MDI, or MDI on an SDI-like background

    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


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured