CMDIFrameWndEx::LoadMDIState
更新 : 2007 年 11 月
MDI タブ付きグループの指定されたレイアウト、および以前に開いたドキュメントの一覧を読み込みます。
virtual BOOL LoadMDIState(
LPCTSTR lpszProfileName
);
パラメータ
- [入力] lpszProfileName
プロファイル名を指定します。
戻り値
読み込みに成功した場合は TRUE。読み込みに失敗した場合、または読み込むデータがない場合は FALSE。
解説
MDI タブとグループの状態、および開いているドキュメントの一覧を読み込むかまたは保存するには、次の操作を行います。
メイン フレームが閉じているときに CMDIFrameWndEx::SaveMDIState を呼び出します。
メイン フレームを作成しているときに CMDIFrameWndEx::LoadMDIState を呼び出します。この呼び出しは、メイン フレームが初めて表示される前に設定することをお勧めします。CWinAppEx::EnableLoadWindowPlacement (FALSE); を pMainFrame->LoadFrame (IDR_MAINFRAME);. の前に追加します。CBCGPWorkspace::ReloadWindowPlacement (pMainFrame); を LoadMDIState への呼び出しの後に追加して、レジストリに保存された位置にメイン フレームを表示します。
アプリケーションがファイルとして保存されていないドキュメントを表示する場合は、CMDIChildWndEx 派生クラス内の GetDocumentName をオーバーライドします。返される文字列は、ドキュメント識別子としてレジストリに保存されます。CMDIChildWndEx::GetDocumentName の基本実装は、CDocument::GetPathName から取得した値を返します。
CMDIFrameWndEx::CreateDocumentWindow をオーバーライドして、ドキュメントがレジストリから読み込まれているときに正しく作成されるようにします。最初のパラメータは、GetDocumentName で返される文字列です。
使用例
VisualStudioDemo サンプル : MFC Visual Studio アプリケーション で LoadMDIState を使用する方法を次の例に示します。
// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
if (cmdInfo.m_nShellCommand == CCommandLineInfo::FileNew)
{
if (!pMainFrame->LoadMDIState(GetRegSectionPath()))
{
m_pStartDocTemplate->OpenDocumentFile(NULL);
}
}
else
{
// Dispatch commands specified on the command line
if (!ProcessShellCommand(cmdInfo))
return FALSE;
}
必要条件
ヘッダー : afxMDIFrameWndEx.h