Partager via


CSingleDocTemplate, classe

Définit un modèle de document qui implémente l'interface monodocument (SDI).

Syntaxe

class CSingleDocTemplate : public CDocTemplate

Membres

Constructeurs publics

Nom Description
CSingleDocTemplate ::CSingleDocTemplate Construit un objet CSingleDocTemplate.

Notes

Une application SDI utilise la fenêtre de trame principale pour afficher un document ; un seul document peut être ouvert à la fois.

Un modèle de document définit la relation entre trois types de classes :

  • Classe de document, à partir de CDocumentlaquelle vous dérivez .

  • Classe d’affichage, qui affiche les données de la classe de document répertoriée ci-dessus. Vous pouvez dériver cette classe de CView, ou CFormViewCScrollViewCEditView. (Vous pouvez également utiliser CEditView directement.)

  • Classe de fenêtre frame, qui contient l’affichage. Pour un modèle de document SDI, vous pouvez dériver cette classe CFrameWndde ; si vous n’avez pas besoin de personnaliser le comportement de la fenêtre de cadre principale, vous pouvez utiliser CFrameWnd directement sans dériver votre propre classe.

Une application SDI prend généralement en charge un type de document. Elle n’a donc qu’un CSingleDocTemplate seul objet. Un seul document peut être ouvert à la fois.

Vous n’avez pas besoin d’appeler des fonctions membres de CSingleDocTemplate l’exception du constructeur. L’infrastructure gère les CSingleDocTemplate objets en interne.

Pour plus d’informations sur l’utilisation CSingleDocTemplate, consultez modèles de document et processus de création de document/affichage.

Hiérarchie d'héritage

CObject

CCmdTarget

CDocTemplate

CSingleDocTemplate

Spécifications

En-tête : afxwin.h

CSingleDocTemplate ::CSingleDocTemplate

Construit un objet CSingleDocTemplate.

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

Paramètres

nIDResource
Spécifie l’ID des ressources utilisées avec le type de document. Cela peut inclure des ressources de menu, d’icône, d’accélérateur et de chaîne.

La ressource de chaîne comprend jusqu’à sept sous-chaînes séparées par le caractère '\n'(le caractère '\n’est nécessaire en tant qu’espace réservé si une sous-chaîne n’est pas incluse ; toutefois, les caractères de fin '\n’ne sont pas nécessaires) ; ces sous-chaînes décrivent le type de document. Pour plus d’informations sur les sous-chaînes, consultez CDocTemplate ::GetDocString. Cette ressource de chaîne se trouve dans le fichier de ressources de l’application. Par exemple :

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

Vous pouvez modifier cette chaîne à l’aide de l’éditeur de chaîne ; la chaîne entière apparaît sous la forme d’une entrée unique dans l’éditeur de chaînes, et non pas comme sept entrées distinctes.

Pour plus d’informations sur ces types de ressources, consultez l’Éditeur de chaînes.

pDocClass
Pointe vers l’objet CRuntimeClass de la classe de document. Cette classe est une CDocumentclasse dérivée que vous définissez pour représenter vos documents.

pFrameClass
Pointe vers l’objet CRuntimeClass de la classe de fenêtre frame. Cette classe peut être une CFrameWndclasse dérivée, ou elle peut être CFrameWnd elle-même si vous souhaitez un comportement par défaut pour votre fenêtre de trame principale.

pViewClass
Pointe vers l’objet CRuntimeClass de la classe d’affichage. Cette classe est une CViewclasse dérivée que vous définissez pour afficher vos documents.

Notes

Allouez dynamiquement un CSingleDocTemplate objet et passez-le à CWinApp::AddDocTemplate partir de la InitInstance fonction membre de votre classe d’application.

Exemple

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

Voir aussi

Exemple DOCKTOOL MFC
CDocTemplate, classe
Graphique hiérarchique
CDocTemplate, classe
CDocument, classe
CFrameWnd, classe
CMultiDocTemplate, classe
CView, classe
CWinApp, classe