次の方法で共有


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

参照

概念

MFC 階層図

参照

CMDIFrameWndEx クラス