MDI(マルチドキュメントインターフェース)とは
MDI(Multiple Document Interface、マルチドキュメントインターフェース)は、グラフィカルユーザーインターフェース(GUI)の一種で、親ウィンドウの中に複数の子ウィンドウを表示し、管理する方式です。従来のSDI(Single Document Interface)方式では、ドキュメントごとにアプリケーションウィンドウが必要となり、複数のドキュメントを開く際にメモリやリソースの消費が増大するという問題がありました。MDIは、この問題を解決するために開発されました。
SDIでは、1つのドキュメントに対して1つのアプリケーションウィンドウ(トップレベルウィンドウ)を使用しますが、MDIでは、1つのドキュメントに対して1つの子ウィンドウを使用します。MDIのドキュメントウィンドウは、親ウィンドウ内にロックされ、その範囲を超えることはありません。
MDIの課題と解決策
MDIの課題として、開かれたウィンドウの管理が難しい点が挙げられます。SDIアプリケーションでは、
タスクバーなどで開かれたウィンドウを一覧表示できますが、MDIでは通常、ユーザーがメニューからウィンドウ一覧表示機能を実行する必要があります。この問題を解決するために、近年のMDIアプリケーションでは、タブ機能や
タスクバーへの一覧表示機能を装備するようになりました。
また、多くのMDIアプリケーションでは、親ウィンドウとの結合・分離を個別に管理することができず、すべての子ウィンドウが一括で処理されます。一部のアプリケーション(
Operaなど)では、ウィンドウの分離・結合を個別に管理できます。MDIはタブ方式のアプリケーションと混同されることもありますが、通常タブ方式では子ウィンドウのサイズを変更することはできません。近年では、
Microsoft Visual Studioや
タブブラウザのように、タブを切り離して独立したウィンドウにできるアプリケーションも登場しています。
MDIの現状
マイクロソフトはMDI形式のアプリケーションを推奨しておらず、Windows Presentation Foundation(WPF)やWindowsランタイムではMDIがサポートされていません。MDIは、Microsoft Foundation Class(MFC)やWindows Formsではサポートされています。
タブ方式のインターフェースは、TDI(Tabbed Document Interface)と呼ばれます。また、SDIに似ていますが、1つのアプリケーション
プロセス内で、親ウィンドウを持たない複数のトップレベルウィンドウを表示する形態をMTI(Multiple Top-level Interface)といいます。macOSは、このMTIスタイルを伝統的に使用しており、MS Officeの新しいSDIもこの形式を採用しています。
MDIを使用したアプリケーションの例
かつてMDIを採用していた代表的なアプリケーションには、以下のようなものがあります。
Adobe Photoshop(CS4以降はTDIが標準)
Eudora
Microsoft Visual Studio(.NET以降はMDI/TDIを選択可能)
Microsoft Word(Word 2010まではSDI/MDIの切り替えが可能、2013以降はSDIのみ)
Microsoft Excel(Excel 2010まで)
一太郎
Opera
Sleipnir
PSPad
関連項目
グラフィカルユーザインタフェース(GUI)
Single Document Interface(SDI)
タブ
*
タブブラウザ