注
Microsoft Foundation Classes (MFC) ライブラリは引き続きサポートされています。 ただし、機能の追加やドキュメントの更新は行われません。
このドキュメントでは、Visual Studio 2008 SP1 で導入されたインターフェイス要素について説明し、以前のバージョンのライブラリとの違いについても説明します。
次の図は、新しいインターフェイス要素を使用してビルドされたアプリケーションを示しています。
ウィンドウのドッキング
ウィンドウ ドッキング機能は、Visual Studio グラフィカル ユーザー インターフェイスで使用されるウィンドウ ドッキングに似ています。
コントロール バーがウィンドウに
コントロール バーはペインと呼ばれるようになり、 CBasePane クラスから派生します。 MFC の以前のバージョンでは、コントロール バーの基底クラスが CControlBarされました。
アプリケーションのメイン フレーム ウィンドウは、通常、 CFrameWndEx クラス または CMDIFrameWndEx クラスによって表されます。 メイン フレームは ドック サイトと呼ばれます。 ウィンドウの親は ドッキング サイト、ドッキング バー、ミニフレーム ウィンドウの 3 種類です。
ウィンドウには、サイズ変更不可とサイズ変更可能の2種類があります。 ステータス バーやツール バーなどのサイズ変更可能なウィンドウは、スプリッターまたはスライダーを使用してサイズを変更できます。 サイズ変更可能なペインはコンテナーを形成できます (1 つのペインを別のペインにドッキングし、その間に分割線を作成できます)。 ただし、サイズ変更可能なペインをドッキング バーにアタッチ (ドッキング) することはできません。
アプリケーションでサイズ変更できないペインを使用している場合は、 CPane クラスから派生させます。 アプリケーションでサイズ変更可能なペインを使用する場合は、CDockablePane クラスから派生させます
船着き場
ドック サイト (またはメイン フレーム ウィンドウ) は、アプリケーション内のすべてのペインとミニフレーム ウィンドウを所有します。 ドック サイトには CDockingManager メンバーが含まれています。 このメンバーは、ドッキング サイトに属するすべてのペインの一覧を保持します。 ドッキング サイトの外側の端に作成されたペインがリストの先頭に配置されるように、リストが並べ替えられます。 フレームワークは、ドッキング サイトを再描画すると、このリストをループ処理し、ドッキング サイトの現在の外接する四角形を含むように各ペインのレイアウトを調整します。 ドッキング レイアウトを調整する必要があるときに、 AdjustDockingLayout または RecalcLayout を呼び出すことができます。フレームワークは、この呼び出しをドッキング マネージャーにリダイレクトします。
ドック バー
各メイン フレーム ウィンドウでは、境界線に沿って ドッキング バー を配置できます。 ドック バーは、 CDockSite クラスに属するペインです。 ドッキング バーは、ツールバーなど、 CPane から派生したオブジェクトを受け取ることができます。 メイン フレーム ウィンドウが初期化されたときにドッキング バーを作成するには、 EnableDockingを呼び出します。 バーの自動非表示を有効にするには、 EnableAutoHideBarsを呼び出します。
EnableAutoHideBars
は CAutoHideDockSite オブジェクトを作成し、各ドッキング バーの横に配置します。
各ドッキング バーは、ドッキング行に分割されます。 Dock 行は CDockingPanesRow クラスによって表されます。 各ドック行には、ツール バーの一覧が含まれています。 ユーザーがツール バーをドッキングするか、同じドッキング バー内の 1 つの行から別の行にツール バーを移動した場合、フレームワークは新しい行を作成し、それに応じてドッキング バーのサイズを変更するか、既存の行にツール バーを配置します。
ミニフレーム ウィンドウ
フローティングペインは、ミニフレームウィンドウ内に存在します。 ミニフレーム ウィンドウは、 CMDITabInfo クラス (1 つのペインのみを含むことができる) と CMultiPaneFrameWnd クラス (複数のペインを含むことができる) の 2 つのクラスで表されます。 コード内のペインを浮動するには、 CBasePane::FloatPane を呼び出します。 ウィンドウが浮動すると、フレームワークによってミニフレーム ウィンドウが自動的に作成され、そのミニフレーム ウィンドウがフローティング ウィンドウの親になります。 フローティング ウィンドウがドッキングされると、フレームワークはその親をリセットし、フローティング ウィンドウはドッキング バー (ツールバーの場合) またはドッキング サイト (サイズ変更可能なウィンドウの場合) になります。
ウィンドウの区切り線
ウィンドウ分割線 (名前付きスライダーまたはスプリッター) は 、CPaneDivider クラスによって表されます。 ユーザーがウィンドウをドッキングすると、ウィンドウがドッキング サイトにドッキングされているか、別のペインにドッキングされているかに関係なく、フレームワークによってウィンドウ分割線が作成されます。 ペインがドッキング サイトにドッキングされると、ウィンドウ分割線は 既定のウィンドウ分割線と呼ばれます。 既定のウィンドウ分割線は、ドッキング サイト内のすべてのドッキング ウィンドウのレイアウトを担当します。 ドック マネージャーは、既定のウィンドウ分割線の一覧とペインの一覧を保持します。 ドッキング マネージャーは、すべてのドッキング ウィンドウのレイアウトを担当します。
Containers
サイズ変更可能なすべてのペインは、相互にドッキングされるとコンテナーに保持されます。 コンテナーは CPaneContainer クラスによって表されます。 各コンテナーには、左ペイン、右ペイン、左サブコンテナー、右サブコンテナー、および左と右の部分の間のスプリッターへのポインターがあります。 (左右は物理的な側面を指すのではなく、ツリー構造の枝を識別します)。この方法では、ペインとスプリッターのツリーを構築できるため、一緒にサイズ変更できるペインの複雑なレイアウトを実現できます。
CPaneContainer クラスは、コンテナーのツリーを保持します。また、このツリーに存在するペインとスライダーの 2 つのリストも保持します。 ペイン コンテナー マネージャーは、通常、複数のペインを含む既定のスライダーとミニフレーム ウィンドウに埋め込まれます。
コントロール バーの自動非表示
既定では、各 CDockablePane は自動非表示機能をサポートしています。 ユーザーが CDockablePaneのキャプションのピン ボタンをクリックすると、フレームワークはウィンドウを自動非表示モードに切り替えます。 このクリックを処理するために、フレームワークは CMFCAutoHideBar クラスと、 オブジェクトに関連付けられた CMFCAutoHideBarを作成します。 フレームワークは、CMFCAutoHideBar に新しいを配置します。 フレームワークでは、ツール バーに CMFCAutoHideButton もアタッチされます。
CDockingManager クラスは、CDockablePaneを保持します。
タブ付きコントロール バーと Outlook バー
CMFCBaseTabCtrl クラスは、デタッチ可能なタブを持つタブ付きウィンドウの基本機能を実装します。
CMFCBaseTabCtrl オブジェクトを使用するには、アプリケーションで CBaseTabbedPane クラスを初期化します。
CBaseTabbedPane は CDockablePane から派生し、 CMFCBaseTabCtrl オブジェクトへのポインターを保持します。
CBaseTabbedPaneを使用すると、ユーザーはタブ付きコントロール バーをドッキングおよびサイズ変更できます。
CDockablePane::AttachToTabWnd を使用して、ドッキングおよびタブ付けされたコントロール バーを動的に作成します。
Outlook バー コントロールは、タブ付きバーにも基づいています。
CMFCOutlookBar クラスは、CBaseTabbedPaneから派生します。 Outlook バーの使用方法の詳細については、「 CMFCOutlookBar クラス」を参照してください。