Compartir a través de


CSingleDocTemplate (clase)

Define una plantilla de documento que implementa la interfaz de un único documento (SDI).

Sintaxis

class CSingleDocTemplate : public CDocTemplate

Miembros

Constructores públicos

Nombre Descripción
CSingleDocTemplate::CSingleDocTemplate Construye un objeto CSingleDocTemplate.

Comentarios

Una aplicación SDI usa la ventana de marco principal para mostrar un documento; solo se puede abrir un documento a la vez.

Una plantilla de documento define la relación entre tres tipos de clases:

  • Clase de documento, que se deriva de CDocument.

  • Clase de vista, que muestra datos de la clase de documento indicada anteriormente. Puede derivar esta clase de CView, CScrollView, CFormView o CEditView. (También puede usar CEditView directamente).

  • Clase de ventana de marco, que contiene la vista. Para una plantilla de documento SDI, puede derivar esta clase de CFrameWnd; si no necesita personalizar el comportamiento de la ventana de marco principal, puede usar CFrameWnd directamente sin derivar su propia clase.

Normalmente, una aplicación SDI admite un tipo de documento, por lo que solo tiene un objeto CSingleDocTemplate. Solo se puede abrir un documento a la vez.

No es necesario llamar a ninguna función miembro de CSingleDocTemplate excepto el constructor. El marco controla los objetos CSingleDocTemplate internamente.

Para más información sobre el uso de CSingleDocTemplate, consulte Plantillas de documento y proceso de creación de documentos o vistas.

Jerarquía de herencia

CObject

CCmdTarget

CDocTemplate

CSingleDocTemplate

Requisitos

Encabezado: afxwin.h

CSingleDocTemplate::CSingleDocTemplate

Construye un objeto CSingleDocTemplate.

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

Parámetros

nIDResource
Especifica el identificador de los recursos usados con el tipo de documento. Esto puede incluir recursos de menú, icono, tabla aceleradora y cadena.

El recurso de cadena consta de hasta siete subcadenas separadas por el carácter "\n" (el carácter "\n" es necesario como marcador de posición si no se incluye una subcadena; sin embargo, no son necesarios caracteres "\n" finales); estas subcadenas describen el tipo de documento. Para información sobre las subcadenas, consulte CDocTemplate::GetDocString. Este recurso de cadena se encuentra en el archivo de recursos de la aplicación. Por ejemplo:

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

Puede editar esta cadena mediante el editor de cadenas; toda la cadena aparece como una sola entrada en el Editor de cadenas, no como siete entradas independientes.

Para más información sobre estos tipos de recursos, consulte el Editor de cadenas.

pDocClass
Apunta al objeto CRuntimeClass de la clase de documento. Esta clase es una clase derivada de CDocument que se define para representar los documentos.

pFrameClass
Apunta al objeto CRuntimeClass de la clase de ventana de marco. Esta clase puede ser una clase derivada de CFrameWnd o puede ser CFrameWnd propiamente dicho si quiere un comportamiento predeterminado para la ventana de marco principal.

pViewClass
Apunta al objeto CRuntimeClass de la clase de vista. Esta clase es una clase derivada de CView que se define para mostrar los documentos.

Comentarios

Asigne dinámicamente un objeto CSingleDocTemplate y páselo a CWinApp::AddDocTemplate desde la función miembro InitInstance de la clase de aplicación.

Ejemplo

// 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);

Consulte también

DOCKTOOL de ejemplo de MFC
CDocTemplate (clase)
Gráfico de jerarquías
CDocTemplate (clase)
CDocument (clase)
CFrameWnd (clase)
CMultiDocTemplate (clase)
CView (clase)
CWinApp (clase)