MFC多文档程序的文档之间怎么交互数据?
想写一个程序,有两个文档模板,两个模板的文档之间怎么交换数据?
请教各位了,帮顶有分!
[解决办法]
theApp.m_pDocManager-> GetFirstDocTemplatePosition();
CDocTemplate::GetFirstDocPosition();
没有用过,不过应该可以的吧.
[解决办法]
CWinApp::GetFirstDocTemplatePosition
CWinApp::GetNextDocTemplate
[解决办法]
楼主只要找到一个文当的指针就行
[解决办法]
牙医正解!
[解决办法]
看看下面的图解文章
http://www.ebook520.com/showbooktext.asp?id=2865
[解决办法]
1)对于单文档中也可以加入多个文档模板,但是一般的开发就使用MDI方式开发
多文档模板,其方法与上述视图的获取方法很接近,这里稍做解释,如果不清楚,
请查阅MSDN.
可以用CWinApp::GetFirstDocTemplatePostion获得应用程序注册的第一个文档模板
的位置;利用该值来调用CWinApp::GetNextDocTemplate函数,获得第一个
CDocTemplate对象指针。 POSITION GetFirstDocTemplate( ) const;
CDocTemplate *GetNextDocTemplate( POSITION & pos ) const;
第二个函数返回由pos 标识的文档模板。POSITION是MFC定义的一个用于迭代或对象指针检索的值。通过这两个函数,应用程序可以遍历整个文档模板列表。如果被检索的文档模板是模板列表中的最后一个,则pos参数被置为NULL。
12)一个文档模板可以有多个文档,每个文档模板都保留并维护了一个所有对应文
档的指针列表。
用CDocTemplate::GetFirstDocPosition函数获得与文档模板相关的文档集合中第一
个文档的位置,并用POSITION值作为CDocTemplate::GetNextDoc的参数来重复遍历与模板相关的文档列表。函数原形为:
viaual POSITION GetFirstDocPosition( ) const = 0;
visual CDocument *GetNextDoc(POSITION & rPos) const = 0;
如果列表为空,则rPos被置为NULL.
13)在文档中可以调用CDocument::GetDocTemplate获得指向该文档模板的指针。
函数原形如下: CDocTemplate * GetDocTemplate ( ) const;
如果该文档不属于文档模板管理,则返回值为NULL。
[解决办法]
CXXApp* pApp=(CXXApp*)AfxGetApp();//得到应用程序指针
POSITION p=pApp-> GetFirstDocTemplatePosition();//得到第一个文档模板
while(p!=NULL)//遍历文档模板
{CDocTemplate* pDocTemplate=pApp-> GetNextDocTemplate(p);
POSITION p1=pDocTemplate-> GetFirstDocPosition();//得到文档模板对应的第一个文档
while(p1!=NULL)//遍历文档模板对应的文档
{CDocument* pDocument=pDocTemplate-> GetNextDoc(p1);
POSITION p2=pDocument-> GetFirstViewPosition();//得到文档对应的第一个视图
while(p2!=NULL)//遍历文档对应的视图
{CView* pView=pDocument-> GetNextView(p2);
}}}