MDI Child Window

This document covers the following topics:


Description

An MDI (Multiple Document Interface) child window is a child dialog of an MDI Frame Window. When an MDI child window is maximized, it expands to fill the interior (MDI client window) of the MDI frame. When minimized, it appears as an icon within the MDI client window, and not as an icon in the Windows Task Bar.

At any one time, only one MDI child window can be active. This window appears in front of the other child windows (if any) and is displayed with an emphasized title bar color. Note that any frame components (e.g., Menu Bar, Tool Bar or Status Bar) defined for an active MDI child window are not displayed within the child window itself, but instead replace the corresponding components (if any) of the MDI Frame Window. The frame components (if any) of inactive MDI child windows are not displayed at all. The active MDI child window may be queried or set via the ACTIVE-CHILD attribute of the MDI Frame Window. An MDI child window also receives an ENTER event when it is activated, and a LEAVE event when it is deactivated.

Note that (in general) multiple instances of an MDI child dialog may be open at any time, each existing as a separate MDI child window. For example, several instances of an "Employee Details" MDI child dialog may be simultaneously open in a personnel-tracking application, displaying information for different employees in a company or department. For this reason, docked windows (such as Tool Bar Controls, Status Bar Controls and Dialog Bar Controls) "belonging" to an MDI child dialog must instead be defined for the MDI frame dialog and explicitly switched by the Natural application when a window belonging to a different MDI child dialog is activated, or when the last MDI child window is deactivated. This also has the advantage of minimizing the performance and resource overheads when opening new instances of an MDI child dialog, since these controls are created just once, regardless of the number of instances opened, and are shared by each instance. Only the state of the window's contents (e.g., the ENABLED or CHECKED states of the Tool Bar Items) is updated in this case, in order to reflect the current selection (if any) in the currently active instance. This is typically done in the COMMAND-STATUS event.

Attributes for MDI Child Window

Attribute Name Query Set/Modify In Attr. Window
AUTO-ADJUST X -/X X
BACKGROUND-COLOUR-NAME X X/X X
BACKGROUND-COLOUR-VALUE X X/X X
BITMAP-FILE-NAME X X/X X
CLIENT-DATA X X/-  
CLIENT-HANDLE X X/X  
CLIENT-KEY X X/X  
CLIENT-VALUE X X/X  
COMPATIBILITY X X/- X
CONTEXT-MENU X X/X X
DEFAULT-BUTTON X X/X X
DOCKING X X/X X
DPI X X/-  
DROP-MODE X X/X X
ENABLED X X/X X
EVENT-QUEUEING X X/X X
FIRST-CHILD X -/-  
FOLLOWS X -/-  
FONT-HANDLE X -/-  
FONT-STRING X X/- X
HAS-DIL X X/X X
HAS-HELP-BUTTON X X/- X
HAS-MENU-BAR X X/-  
HAS-STATUS-BAR X X/X X
HAS-SYSTEM-BUTTON X -/-  
HAS-TOOLBAR X X/X X
HAS-TOOLTIP X X/X  
HELP-FILENAME X X/X X
HELP-ID X X/X X
HORIZ-SCROLLABLE X X/X X
LAST-CHILD X -/-  
MAXIMIZABLE X -/-  
MAXIMIZED X X/X X
MENU-HANDLE X X/X  
MINIMIZABLE X -/-  
MINIMIZED X X/X X
MODIFIED X X/X  
MODIFIED-SUCCESSOR X -/-  
NAME X -/-  
PARENT X X/-  
POPUP-HELP X X/X X
PREDECESSOR X -/-  
RECTANGLE-H X X/X X
RECTANGLE-W X X/X X
RECTANGLE-X X X/X X
RECTANGLE-Y X X/X X
RTL X -/- X
SCROLLRANGE-X X X/X  
SCROLLRANGE-Y X X/X  
SIZE-MODIFIABLE X -/-  
STATUS-HANDLE X X/X  
STATUS-TEXT   -/X  
STRING X X/X X
STYLE X -/X X
SUCCESSOR X -/-  
SUPPRESS-CLIENT-SIZE-EVENT X X/X  
SUPPRESS-COMMAND-STATUS-EVENT X X/X  
SUPPRESS-DRAG-DROP-EVENT X X/X  
SUPPRESS-DRAG-ENTER-EVENT X X/X  
SUPPRESS-DRAG-LEAVE-EVENT X X/X  
SUPPRESS-DRAG-OVER-EVENT X X/X  
SUPPRESS-ENTER-EVENT X X/X  
SUPPRESS-IDLE-EVENT X X/X  
SUPPRESS-LEAVE-EVENT X X/X  
SUPPRESS-SIZE-EVENT X X/X  
TOOLBAR-HANDLE X X/-  
TOOLTIP X X/X  
TYPE X X/- X
VERSION X -/-  
VERT-SCROLLABLE X X/X X
VISIBLE X X/X X
WALLPAPER X X/X X

Events

After-Any Event, After-Open Event, Before-Any Event, Before Open Event, Before-Open Event, Client-Size Event (may be suppressed), Close Event, Command-Status Event (may be suppressed), Drag-Drop Event (may be suppressed), Drag-Enter Event (may be suppressed), Drag-Leave Event (may be suppressed), Drag-Over Event (may be suppressed), Enter Event (may be suppressed), Error Event, Idle Event (may be suppressed), Leave Event (may be suppressed), Size Event (may be suppressed).