Multiple Document Interface

MDI、Multiple Document Interface (マルチ・ドキュメント・インタフェース)とは親ウィンドウ内に複数の子ウィンドウを表示…

Multiple Document Interface

MDIMultiple Document Interface (マルチ・ドキュメント・インタフェース)とは親ウィンドウ内に複数の子ウィンドウを表示して管理するグラフィカルユーザインタフェース方式である。従来のSDI方式ではドキュメントごとにアプリケーションウィンドウを必要とするため、複数のドキュメントを開く際はそれぞれにアプリケーションプロセスを起動しなければならず、メモリやリソースの消費が増えるという問題を解決するために開発された。SDIでは1つのドキュメントに対し、1つのアプリケーションウィンドウ(1つのトップレベルウィンドウ)を使用するが、MDIでは1つのドキュメントに対し、1つの子ウィンドウを使用する[1]。また、MDIのドキュメントウィンドウは親ウィンドウにロックおよびクリッピングされる。

既存のSDI形式のアプリケーションソフトウェアをMDI化するには、設計に変更を加える必要がある。

Microsoft OfficeはかつてSDIからMDI化したが、その後は再びSDIが標準となり、MDIはオプションとしてサポートされるようになった。さらに後継のバージョンでは、SDIのみがサポートされるようになっている(厳密に言うとSDIではなく後述のMTIに相当する)。

問題点

一般的にMDIは開かれたウィンドウの管理が問題だとされる。SDIアプリケーションであればタスクバーなどで開かれたウィンドウの情報を一覧できるが、MDIでは通常、子ウィンドウの一覧を確認するためにユーザーがメニューなどからウィンドウ一覧表示機能を実行しなければならない。そのため近年[いつ?]のMDIアプリケーションはこの問題を解決するためタブ機能やタスクバーへの一覧表示機能を装備することでこの問題を解決するようになった。多くのMDIアプリケーションは親ウインドウとの結合・子ウインドウ分離を一括で管理される。1つをMDI化しようとすれば全てがMDI化され、ひとつを親ウインドウと結合しようとすれば全てが親ウインドウと結合される。分離・結合を個別に管理するのはOperaなどごく一部のアプリケーションのみである。MDIはタブ方式のアプリケーションと一緒くたにされる場合もあるようであり、実際タブ方式のアプリケーションと同じように使えるアプリケーションもあるが、通常タブ方式でウィンドウを管理するアプリケーションは個々を子ウィンドウ化してその大きさを変更するようなことはできない。Microsoft Visual Studio 2010以降[2][3]や、タブブラウザでは、ドキュメント/ページを表示しているタブを切り離して独立ウィンドウ化することができる。

マイクロソフトはMDI形式のアプリケーションを推奨していない[4]。また、Microsoft Foundation Class (MFC) [5]Windows Forms[6]ではMDIがサポートされているものの、後発のWindows Presentation Foundation (WPF) やWindowsランタイムではMDIがサポートされていない。

なお、タブ方式のインタフェースはTabbed Document Interface (TDI) と呼ばれる。

また、SDIに似ているが、1つのアプリケーションプロセス中で、親ウィンドウを持たない複数のトップレベルウィンドウを表示する形態をMultiple Top-level Interface (MTI) という。macOSClassic Mac OSから伝統的にこのスタイルのみを用いる。MS Officeの新しいSDIもこの形式である。ドキュメントごとにプロセスを起動しないので、メモリやリソースの消費を抑えることができる。

MDIを使用したアプリケーションの例

脚注

関連項目

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.