Logo

Hacker’s Guide to Visual FoxPro
An irreverent look at how Visual FoxPro really works. Tells you the inside scoop on every command, function, property, event and method of Visual FoxPro.

MDIForm

This property determines whether a form is MDI (Multiple Document Interface) compliant.

Usage

frmForm.MDIForm = lIsItMDI
lIsItMDI = frmForm.MDIForm

We have a lot of ambivalence about the MDI approach. We love being able to open multiple documents at once. Sometimes we love it when maximizing one of those documents maximizes them all, but other times the same behavior makes us tear our hair out. We suspect most Windows users feel the same way.

Visual FoxPro’s approach to this problem is actually a nice compromise. Windows you define have a choice. They can be MDI windows or not. Maximizing an MDI window takes only other MDI windows with it, not all open windows. This means you can make intelligent decisions about how any given window ought to behave. Turn MDIForm on for the ones that ought to work this way and leave it off for the others. Just make sure you’re using some sensible criteria to decide which is which, or your users will be horribly confused.

Help for VFP 5 and later says that MDIForm is for backward compatibility and that you should use ShowWindow instead. That’s a typical Microsoft way of trying to push us into following their latest “standard.” ShowWindow, while a very nice property, doesn’t offer the same choices as MDIForm. They’re both relevant.

Example

This.MDIForm = .T.

See Also

Define Window, MaxButton, ShowWindow, WindowState, Zoom Window