我自己的是从通过doc来传输数据的。
发送数据
获取文档指针
pDoc->infoArray[0].InsertAt(0," 数据");
pDoc->add=true;
pDoc->UpdateAllViews(NULL);//刷新显示
接受数据
获取文档指针
if(pDoc->add)
{
CString str;
str = pDoc->InfoArray[0].GetAt(0);//str = 数据
}
那还有没有别的方法,
怎么发送数据,怎么接受数据,最好是不带这句话的方法:pDoc->UpdateAllViews(NULL);//刷新显示
问题已经解决,采用的是,全局变量同时,获取各窗口的句柄,传值后进行窗口刷新显示,比窗口通讯要好
首先,文档类本身哪来的数据入口?应该是外部调用的吧?在哪里?从这个地方分支,一方面调用文档类进行数据处理,然后再通知各个视图类进行刷新。这个处理可以封装起来,比如由主框架类负责处理,并通知所有视图。这可以用一个消息来完成。
典型的观察者模式 http://www.cnblogs.com/mfryf/archive/2012/04/22/2465030.html
可以自定义消息,把要发送的数据封装成类,需要接受数据的地方定义消息处理函数。在发送的时候把数据类new出来,向接受数据的窗口句柄发送消息(postmessage),将new出来的对象指针当成参数传递。处理的窗口处理完成后记得delete。具体可以查“MFC 自定义消息”。