CMultiDocTemplate::CMultiDocTemplate
Construit un objet CMultiDocTemplate.
CMultiDocTemplate(
UINT nIDResource,
CRuntimeClass* pDocClass,
CRuntimeClass* pFrameClass,
CRuntimeClass* pViewClass
);
Paramètres
nIDResource
Spécifie l'ID les ressources utilisées par le type de document. Cela peut inclure le menu, l'icône, la table d'accélérateurs, et les ressources de type chaîne.La ressource de type chaîne se compose de jusqu'à sept sous-chaînes séparées par le caractère « « \ n » caractère (\ n » est nécessaire en tant qu'espace réservé si une sous-chaîne n'est pas inclus ; toutefois, les caractères « \ n » de fin ne sont pas nécessaires) ; les sous-chaînes décrivent le type de document. Pour plus d'informations sur les sous-chaînes, consultez CDocTemplate::GetDocString. Cette ressource de type chaîne est trouvée dans le fichier de ressources de l'application. Par exemple :
// MYCALC.RC
STRINGTABLE PRELOAD DISCARDABLE
BEGIN
IDR_SHEETTYPE "\nSheet\nWorksheet\nWorksheets (*.myc)\n.myc\n MyCalcSheet\nMyCalc Worksheet"
END
Notez que la chaîne commence par des applications '\ne character; this is because the first substring is not used for MDI et donc n'êtes pas inclus. Vous pouvez modifier cette chaîne à l'aide de l'éditeur de chaînes ; la chaîne entière apparaît comme entrée unique dans l'Éditeur de chaînes, et non comme sept entrées distinctes.
Pour plus d'informations sur ces types de ressource, consultez l' éditeurs de ressources.
pDocClass
Pointe vers l'objet d' CRuntimeClass de le fichier. Cette classe est CDocumentclasse dérivée que vous définissez pour représenter vos documents.pFrameClass
Pointe vers l'objet d' CRuntimeClass de la classe de fenêtre frame. Cette classe peut être CMDIChildWnd- la classe dérivée, ou peut être CMDIChildWnd lui-même si vous souhaitez que le comportement par défaut pour vos fenêtres frames de document.pViewClass
Pointe vers l'objet d' CRuntimeClass de la classe d'affichage. Cette classe est CViewclasse dérivée que vous définissez pour consulter vos documents.
Notes
Allouez dynamiquement un objet d' CMultiDocTemplate pour chaque type de document que votre application prend en charge les applications et exécuter chacune à CWinApp::AddDocTemplate de la fonction membre d' InitInstance de votre classe d'application.
Exemple
// Code fragment from CMyApp::InitInstance
// Establish all of the document types
// supported by the application
AddDocTemplate(new CMultiDocTemplate(IDR_BRUSHDOCTYPE,
RUNTIME_CLASS(CBrushDoc),
RUNTIME_CLASS(CChildFrame),
RUNTIME_CLASS(CBrushView)));
AddDocTemplate(new CMultiDocTemplate(IDR_DCDOCTYPE,
RUNTIME_CLASS(CDCDoc),
RUNTIME_CLASS(CChildFrame),
RUNTIME_CLASS(CDCView)));
Voici un deuxième exemple.
// Code fragment taken from CMyApp::InitInstance
// Normally, an application creates a document
// template and registers it with MFC as a part
// of its initialization.
// IDR_EXAMPLEDOCTYPE 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.
pDocTemplate = new CMultiDocTemplate(IDR_EXAMPLEDOCTYPE,
RUNTIME_CLASS(CExampleDoc),
RUNTIME_CLASS(CChildFrame),
RUNTIME_CLASS(CExampleView));
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);
Configuration requise
Header: afxwin.h