View窗口内容更新显示!

woaiwcy 2010-01-25 10:36:50
问题是这样的:
1.我在CDoc中定义一个 CString m_txt,m_txt的内容是从txt中读取的
CFile file;
file.Open("F:\\1.txt",CFile::modeRead);
file.Read(m_txt.GetBuffer(file.GetLength()),file.GetLength());
m_txt.ReleaseBuffer();
file.Close();
2.CView的OnDraw显示m_txt的内容:
CString str;
str = pDoc->m_txt;
pDC->TextOut(0,0,str);
3.CView中定义LButtonDown事件,改写txt的内容:
CFile file;
file.Open("F:\\1.txt",CFile::modeWrite | CFile::modeNoTruncate);
CString str("I love YL!");
file.Seek(0,CFile::begin);
file.Write(str.GetBuffer(str.GetLength()),str.GetLength());
str.ReleaseBuffer();
file.Close();
// Invalidate(); //这个试了也不行
// UpdateWindow();
GetDocument()->UpdateAllViews(NULL);
问题是:txt中的内容是改变了,但View中的内容没有及时更新,要关掉后重新打开才行,怎样修改使其能及时更新呢,请各位帮忙想想~
...全文
94 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
woaiwcy 2010-01-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 happyparrot 的回复:]
大侠,你得修改pDoc->m_txt变量的值啊。你光改文件内容,视图怎么可能会有变化呢???
[/Quote]
大侠说的对极了!但是我还是不知道应该怎么改呢,实际要做的是一个多文档的窗口,怎么来修改“m_txt”的值呢(不知道是哪一个文件),又不想破坏文档视图结构,请大侠再指点指点~
fandh 2010-01-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 happyparrot 的回复:]
大侠,你得修改pDoc->m_txt变量的值啊。你光改文件内容,视图怎么可能会有变化呢???
[/Quote]
CFile file;
file.Open("F:\\1.txt",CFile::modeRead);
file.Read(m_txt.GetBuffer(file.GetLength()),file.GetLength());
m_txt.ReleaseBuffer();
file.Close();
这段代码,必须在你LButtonDown里面调用一下!
不过,你可以不用文件,直接在LButtonDown里面改动pDoc->m_txt!
blpluto 2010-01-25
  • 打赏
  • 举报
回复
楼上正解,你可以跟踪一下你的pDoc->m_txt,看看这里面的东西改变了没有
快乐鹦鹉 2010-01-25
  • 打赏
  • 举报
回复
CFile file;
file.Open("F:\\1.txt",CFile::modeWrite | CFile::modeNoTruncate);
C**Document *pDoc = GetDocument();
pDoc->m_txt = "I love YL!";
file.Seek(0,CFile::begin);
file.Write(pDoc->m_txt.GetBuffer(pDoc->m_txt.GetLength()),pDoc->m_txt.GetLength());
pDoc->m_txt.ReleaseBuffer();
file.Close();
Invalidate(); //这个试了也不行
快乐鹦鹉 2010-01-25
  • 打赏
  • 举报
回复
大侠,你得修改pDoc->m_txt变量的值啊。你光改文件内容,视图怎么可能会有变化呢???

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧