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
oCEditView
. (También puede usarCEditView
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 usarCFrameWnd
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
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);
Vea 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)