我做了一个MDI的程序,并且创建了好几个视图,这些视图都是对应同一个的文档的,在APP的InitInstance过程中,我创建了这几个视图的文档模板,结果程序执行的时候,弹出了一个新建对话框来,要求我选择一个文档类型(三个文件类型都是一样的)来新建文件,我知道程序是想要根据选择的文档的次序选择对应的视图。但是,我的目的是想要应用程序一启动就自动创建默认的文档和对应的视图(就是根据我创建的一个默认的文档模板来新建文档),每次单击新建命令的时候,也同样创建默认的文档(我需要的)。其他视图,在菜单〉〉视图-〉其他视图 中选择。不知道大家有没有这个方面的经验,希望帮助我~
在你的消息处理中判断是哪个视图 CMyView
必须包含这个视图的头文件
CMyView* pView = (CMyView*)RUNTIME_CLASS(CMyView)->CreateObject();
可以得到这个视图的指针
详细写可以看看MSDN关于RTTI的部分
CRuntimeClass* pFrameClass, CRuntimeClass* pViewClass);函数中的nIDResource,不一致。
如下所实例
pDocTemplate = new CSingleDocTemplate(
IDR_READSHTYPE/*IDS_SHAPEFILETYPE*/,
RUNTIME_CLASS(CReadShpFileDoc),
RUNTIME_CLASS(CMainFrame), // custom MDI child frame
RUNTIME_CLASS(CReadShpFileView));
AddDocTemplate(pDocTemplate); pDocTemplate = new CSingleDocTemplate(
IDR_SHAPEFILEPROJECT/*IDS_SHAPEFILETYPECReadShapePrjFileDoc*/,
RUNTIME_CLASS(CReadShpFileDoc),
RUNTIME_CLASS(CMainFrame), // custom MDI child frame
RUNTIME_CLASS(CReadShpFileView));
AddDocTemplate(pDocTemplate);
其中:
IDR_READSHTYPE:\nReadSh\nReadSh\nReadSh 文件 (*.SHP)\n.SHP\nReadShpFile.Document\nReadSh Document
IDR_SHAPEFILEPROJECT:\nReadSh\n\nShape File Project Files (*.SFP)\n.SFP\nReadShapeProject.Document\nShapeProject Document