CSingleDocTemplate クラスCSingleDocTemplate Class

SDI (シングル ドキュメント インターフェイス) を実装するドキュメント テンプレートを定義します。Defines a document template that implements the single document interface (SDI).

構文Syntax

class CSingleDocTemplate : public CDocTemplate

メンバーMembers

パブリック コンストラクターPublic Constructors

名前Name 説明Description
CSingleDocTemplate::CSingleDocTemplateCSingleDocTemplate::CSingleDocTemplate CSingleDocTemplate オブジェクトを構築します。Constructs a CSingleDocTemplate object.

RemarksRemarks

SDI アプリケーションでは、メイン フレーム ウィンドウを使用して、ドキュメントを表示します。1 つだけのドキュメントは、一度に開くことができます。An SDI application uses the main frame window to display a document; only one document can be open at a time.

ドキュメント テンプレートでは、3 種類のクラス間のリレーションシップを定義します。A document template defines the relationship between three types of classes:

  • ドキュメント クラスから派生したCDocumentします。A document class, which you derive from CDocument.

  • ビュー クラスの上に表示されるドキュメント クラスからのデータが表示されます。A view class, which displays data from the document class listed above. このクラスから派生できますCViewCScrollViewCFormView、またはCEditViewします。You can derive this class from CView, CScrollView, CFormView, or CEditView. (使用することもCEditView直接)。(You can also use CEditView directly.)

  • ビューを含むフレーム ウィンドウ クラス。A frame window class, which contains the view. SDI ドキュメント テンプレートからこのクラスを派生できますCFrameWndかどうかは、メインの動作をカスタマイズする必要はありません。 フレーム ウィンドウを使用できますCFrameWnd、独自のクラスを派生させることなく直接します。For an SDI document template, you can derive this class from CFrameWnd; if you do not need to customize the behavior of the main frame window, you can use CFrameWnd directly without deriving your own class.

SDI アプリケーションは、1 つだけがある、通常、ドキュメントの 1 つの種類をサポートCSingleDocTemplateオブジェクト。An SDI application typically supports one type of document, so it has only one CSingleDocTemplate object. 1 つだけのドキュメントは、一度に開くことができます。Only one document can be open at a time.

すべてのメンバーの関数を呼び出す必要はありませんCSingleDocTemplateコンス トラクターを除きます。You don't need to call any member functions of CSingleDocTemplate except the constructor. Framework ハンドルCSingleDocTemplateオブジェクトを内部的にします。The framework handles CSingleDocTemplate objects internally.

使用しての詳細についてはCSingleDocTemplateを参照してくださいドキュメント テンプレートとドキュメント/ビューの作成手順します。For more information on using CSingleDocTemplate, see Document Templates and the Document/View Creation Process.

継承階層Inheritance Hierarchy

CObjectCObject

CCmdTargetCCmdTarget

CDocTemplateCDocTemplate

CSingleDocTemplate

必要条件Requirements

ヘッダー: afxwin.hHeader: afxwin.h

CSingleDocTemplate::CSingleDocTemplateCSingleDocTemplate::CSingleDocTemplate

CSingleDocTemplate オブジェクトを構築します。Constructs a CSingleDocTemplate object.

CSingleDocTemplate(
    UINT nIDResource,
    CRuntimeClass* pDocClass,
    CRuntimeClass* pFrameClass,
    CRuntimeClass* pViewClass);

パラメーターParameters

可能nIDResource
ドキュメントの種類で使用するリソースの ID を指定します。Specifies the ID of the resources used with the document type. これには、メニューのアイコン、アクセラレータ テーブル、および文字列リソースを含めることができます。This may include menu, icon, accelerator table, and string resources.

文字列リソースは、'\n' 文字で区切られた最大 7 つの部分文字列で構成されます (部分文字列が含まれていない場合、'\n' 文字は、プレース ホルダーとして必要ですただし、末尾の '\n' 文字は必要ありません);。これらの部分文字列には、ドキュメントの種類について説明します。The string resource consists of up to seven substrings separated by the '\n' character (the '\n' character is needed as a placeholder if a substring is not included; however, trailing '\n' characters are not necessary); these substrings describe the document type. 部分文字列の詳細については、次を参照してください。 CDocTemplate::GetDocStringします。For information about the substrings, see CDocTemplate::GetDocString. この文字列リソースには、アプリケーションのリソース ファイルが記載されています。This string resource is found in the application's resource file. 例:For example:

// MYCALC.RC
STRINGTABLE PRELOAD DISCARDABLE
BEGIN
  IDR_MAINFRAME "MyCalc Windows Application\nSheet\nWorksheet\n Worksheets (*.myc)\n.myc\nMyCalcSheet\n MyCalc Worksheet"
END

ストリング エディターを使用してこの文字列を編集できます。文字列全体は、7 つの個別のエントリとしてではなく文字列エディターで、1 つのエントリとして表示されます。You can edit this string using the string editor; the entire string appears as a single entry in the String Editor, not as seven separate entries.

これらのリソースの種類の詳細については、次を参照してください。、文字列エディターします。For more information about these resource types, see the String Editor.

pDocClasspDocClass
指す、CRuntimeClassドキュメント クラスのオブジェクト。Points to the CRuntimeClass object of the document class. このクラスは、 CDocument-ドキュメントを表すために定義するクラスを派生します。This class is a CDocument-derived class you define to represent your documents.

pFrameClasspFrameClass
指す、CRuntimeClassフレーム ウィンドウ クラスのオブジェクト。Points to the CRuntimeClass object of the frame window class. このクラスにすることができます、 CFrameWnd-クラスを派生することもできますCFrameWnd自体、メイン フレーム ウィンドウの既定の動作をする場合。This class can be a CFrameWnd-derived class, or it can be CFrameWnd itself if you want default behavior for your main frame window.

pViewClasspViewClass
指す、CRuntimeClassビュー クラスのオブジェクト。Points to the CRuntimeClass object of the view class. このクラスは、 CView-ドキュメントの表示を定義するクラスを派生します。This class is a CView-derived class you define to display your documents.

RemarksRemarks

動的に割り当てる、CSingleDocTemplateオブジェクトに渡すとCWinApp::AddDocTemplateから、InitInstanceアプリケーション クラスのメンバー関数。Dynamically allocate a CSingleDocTemplate object and pass it to CWinApp::AddDocTemplate from the InitInstance member function of your application class.

Example

// The following code fragment is from CMyWinApp::InitInstance.
// CMyWinApp is derived from CWinApp.

// Establish the document type
// supported by the application
AddDocTemplate(new CSingleDocTemplate(IDR_MAINFRAME,
   RUNTIME_CLASS(CMyDoc),
   RUNTIME_CLASS(CMainFrame),       // main SDI frame window
   RUNTIME_CLASS(CMyView)));
// The following code fragment is from CMyWinApp::InitInstance.
// CMyWinApp is derived from CWinApp.

// Normally, an application creates a document
// template and registers it with MFC as a part
// of its initialization.

// IDR_SAMPLERESOURCE is a resource ID string;
// see the CDocTemplate class overview documentation
// for more information on its format.

// The next three parameters use the RUNTIME_CLASS()
// macro to get runtime type information for the doc,
// frame, and view classes that will be associated by
// the template.

CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,
   RUNTIME_CLASS(CMyDoc),
   RUNTIME_CLASS(CMainFrame),       // main SDI frame window
   RUNTIME_CLASS(CMyView));
if (!pDocTemplate)
return FALSE;

// After the following call, MFC is aware of the doc
// template and will free it when the application is
// shut down. The doc templates known to MFC will
// automatically be used when CWinApp:OnFileOpen() or 
// CWinApp::OnFileNew() are called.
AddDocTemplate(pDocTemplate);

関連項目See also

MFC サンプル DOCKTOOLMFC Sample DOCKTOOL
CDocTemplate クラスCDocTemplate Class
階層図Hierarchy Chart
CDocTemplate クラスCDocTemplate Class
CDocument クラスCDocument Class
CFrameWnd クラスCFrameWnd Class
CMultiDocTemplate クラスCMultiDocTemplate Class
CView クラスCView Class
CWinApp クラスCWinApp Class