最重要的是要把写的字放在文档类里面!
第一个视图里写完字后调用GetDocument()->UpdateAllViews(this);
在第二个视图的OnDraw函数里,先用GetDocument获得文档指针,然后显示它!
第一个视图里写完字后调用GetDocument()->UpdateAllViews(this);
在第二个视图的OnDraw函数里,先用GetDocument获得文档指针,然后显示它!
解决方案 »
- win32 SDK编程如何显示一个打开能够文件夹的对话框并响应消息
- VC+ADO远程操作access数据库
- 调用调试地址寄存器
- VS.NET2003中文版中系统自动添加的注释可否改成英文的?
- Speech 5.1 SDK 中的学习例子Coffee0的问题
- typedef struct 和 struct的分别?2
- 求助:VC的怪问题(UP有分)------------------------------先给100分,不够再追加
- DVD ROM怎么播放VCD光盘?
- Microsoft JET Database Engine error 80004005?
- 如何在98和2000下屏蔽Ctrl-Alt-Del?
- 模板的小问题
- 烟台东方电子大裁员,后来者慎重!!!
最重要的是要把写的字放在文档类里面!
第一个视图里写完字后调用GetDocument()->UpdateAllViews(this);
在第二个视图的OnUpdata()里显示它,注意如果复杂的话,必须在文档里设置好相关标志参数!
首先,我在Csplit824Doc(Csplit824Doc是我定义的派生于CDocument类的)加入了一个
CString str;变量,然后我把Csplit824View(基于CFormView)上文本框中的m_Msg复给了strCSplit824Doc * pDoc=GetDocument();
pDoc->str=m_Msg;
pDoc->UpdateAllViews(this);
然后我在第二个视图中:
void CMyForm::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
{
CSplit824Doc * pDoc=GetDocument();
}
就写了一条语句也同不过提示错误信息:
:\vcpro\Split824\MyForm.cpp(92) : error C2440: 'initializing' : cannot convert from 'class CDocument *' to 'class CSplit824Doc *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
为什么呢?
改成
CSplit824Doc * pDoc=(CSplit824Doc * )GetDocument();就成
或者你自己写一个
GetDocument()函数,参照另外一个视图类的写法就行
to:tengy1(逐日),我是在ondraw里做的,在onupdate()里找不到pDC->TextOut(), 要是想显示怎么办呢?还有个问题,就是在视图1中写的文字至少要20多秒才会在第2个上显示,为什么啊?
CClientDC dc(this);
dc.TextOut(....那么慢?!
要获得dc用GetDC()不就行了?