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
CDocument
laquelle 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
, ouCFormView
CScrollView
CEditView
. (Vous pouvez également utiliserCEditView
directement.)Classe de fenêtre frame, qui contient l’affichage. Pour un modèle de document SDI, vous pouvez dériver cette classe
CFrameWnd
de ; si vous n’avez pas besoin de personnaliser le comportement de la fenêtre de cadre principale, vous pouvez utiliserCFrameWnd
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
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 CDocument
classe 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 CFrameWnd
classe 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 CView
classe 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