このドキュメントでは、次のトピックについて説明します。
MDI(マルチドキュメントインターフェイス)子ウィンドウは、MDI フレームウィンドウの子ダイアログです。 MDI 子ウィンドウが最大化されると、MDI フレームの内部(MDI クライアントウィンドウ)いっぱいまで拡張されます。 最小化されると、Windows タスクバーのアイコンとしてではなく、MDI クライアントウィンドウ内のアイコンとして表示されます。
常に、1 つの MDI 子ウィンドウだけをアクティブにできます。 このウィンドウは他の子ウィンドウ(存在する場合)の前に表示され、タイトルバーの色が強調されて表示されます。 アクティブな MDI 子ウィンドウに対して定義されたフレームコンポーネント(メニューバー、ツールバー、ステータスバーなど)は、子ウィンドウそのものには表示されず、代わりに MDI フレームウィンドウの対応するコンポーネント(存在する場合)にあらためて配置されることに注意してください。 非アクティブな MDI 子ウィンドウのフレームコンポーネントは、存在する場合でも表示されません。 アクティブな MDI 子ウィンドウは、MDI フレームウィンドウの ACTIVE-CHILD 属性を使用して照会または設定できます。 また、MDI 子ウィンドウは、アクティブになった時には ENTER イベントを、非アクティブになった時には LEAVE イベントを受け取ります。
MDI 子ダイアログの複数インスタンスは、一般にそれぞれ別個の MDI 子ウィンドウとして存在し、いつでも開くことができます。 例えば、"従業員詳細" という MDI 子ダイアログの複数のインスタンスを、企業や部門のさまざまな従業員の情報を表示する人事照会アプリケーションで同時に開くことができます。 この理由から、MDI 子ダイアログに "属して" いるドッキングされたウィンドウ(ツールバーコントロール、ステータスバーコントロール、ダイアログバーコントロールなど)は、代わりに MDI フレームダイアログに対して定義し、異なる MDI 子ダイアログに属しているウィンドウがアクティブになったとき、または最後の MDI 子ウィンドウが非アクティブになったときに、Natural アプリケーションで明示的に切り替える必要があります。 これらのコントロールは、開かれたインスタンスの数に関係なく 1 回しか作成されず、各インスタンスに共有されるので、MDI 子ダイアログの新規インスタンスを開くときに、パフォーマンスおよびリソースのオーバーヘッドが最小限になるという利点もあります。 このケースでは、現在アクティブなインスタンスの現在の選択(存在する場合)を反映するために、ウィンドウの内容の状態(例:ツールバー項目の ENABLED 状態または CHECKED 状態)のみ更新されます。 これは一般に COMMAND-STATUS イベントで行われます。
After-Any イベント、After-Open イベント、Before-Any イベント、Before Open イベント、Before-Open イベント、Client-Size イベント(抑制される場合があります)、Close イベント、Command-Status イベント(抑制される場合があります)、Drag-Drop イベント(抑制される場合があります)、Drag-Enter イベント(抑制される場合があります)、Drag-Leave イベント(抑制される場合があります)、Drag-Over イベント(抑制される場合があります)、Enter イベント(抑制される場合があります)、Error イベント、Idle イベント(抑制される場合があります)、Leave イベント(抑制される場合があります)、Size イベント(抑制される場合があります)。