问一个入门级的问题,关于SDI文本显示的

jinyongzhi 2009-09-17 09:07:44
读取一个TXT文件,把里面的内容显示在SDI窗口内,并实现基本的编辑功能比如添加删除某些字符等,通常应该怎么做?以前没做过类似的东西,只知道在对话框中用EDIT来显示,我想在CView中肯定不是简单的CString+TextOut吧,毕竟如果TXT文件有几M的话,这样效率太低了。
请知道的朋友指点一下,最好给出些代码,谢谢。
...全文
122 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinyongzhi 2009-09-27
  • 打赏
  • 举报
回复
我采用的是9楼的方法,在CView中调用CRichEditCtrl,再增加功能的话会考虑10楼的做法,拿来和大家分享一下,虽然很简单,但对于没做过这方面的朋友也许会有帮助:
//创建编辑框
CRichEditCtrl m_redit;
CRect rect;
GetClientRect(rect);
m_redit.Create(WS_VISIBLE|WS_CHILD|WS_BORDER|WS_HSCROLL|WS_VSCROLL|ES_AUTOHSCROLL|ES_AUTOVSCROLL|ES_MULTILINE, rect,this,1);
m_redit.SetWindowText("设置编辑框的内容");

//追加字符串,微软没有提供直接的函数,下面的方法是我网上搜到的
m_redit.SetSel(-1, -1);
m_redit.ReplaceSel("向编辑框内已有文字后面追加的新内容");

//调整编辑框尺寸
m_redit.MoveWindow(rect);
RockurSoul 2009-09-18
  • 打赏
  • 举报
回复
学习.~~
mailsea2009 2009-09-18
  • 打赏
  • 举报
回复
听说回贴子有积分,回一个
yuhudie203 2009-09-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jinyongzhi 的回复:]
这倒也是个方法,不过用了这个类就不能再用OnDraw绘图了,我是想从串口读取数据然后再View中实时的显示读到的数据,同时再用另一个窗口显示一些数据曲线,这个CEditView好像不行
[/Quote]
窗口分割吧 绘图部分用CView 另外部分用CFormView
CFormView可以添加Edit编辑框来操作txt文本
CoderOfVC 2009-09-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jinyongzhi 的回复:]
这倒也是个方法,不过用了这个类就不能再用OnDraw绘图了,我是想从串口读取数据然后再View中实时的显示读到的数据,同时再用另一个窗口显示一些数据曲线,这个CEditView好像不行
[/Quote]

那你可以在视图类上创建一个CEdit来显示数据。。。
jinyongzhi 2009-09-17
  • 打赏
  • 举报
回复
这倒也是个方法,不过用了这个类就不能再用OnDraw绘图了,我是想从串口读取数据然后再View中实时的显示读到的数据,同时再用另一个窗口显示一些数据曲线,这个CEditView好像不行
幽雾 2009-09-17
  • 打赏
  • 举报
回复
同意楼上观点
CoderOfVC 2009-09-17
  • 打赏
  • 举报
回复
创建工程的时候视图类的基类选择CEditView
wang1984hua 2009-09-17
  • 打赏
  • 举报
回复
呵呵,楼上人说的对
webing520 2009-09-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fandh 的回复:]
引用 2 楼 shunruo 的回复:
CEditView

是的!应该是这个!
[/Quote]


Up

你可以搜索一些类似的CEditView的代码作参考,效率高一些。。。
fandh 2009-09-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 shunruo 的回复:]
CEditView
[/Quote]
是的!应该是这个!
凤矶 2009-09-17
  • 打赏
  • 举报
回复
CEditView
fandh 2009-09-17
  • 打赏
  • 举报
回复
用RICHEDIT
solu 2009-09-17
  • 打赏
  • 举报
回复
生成的时候直接继承CEditView就行了,一般的编辑功能都有!
wu_qing_yun 2009-09-17
  • 打赏
  • 举报
回复
用序列化啊,Serialize(CArchive& ar)函数可以做到
Huqing008 2009-09-17
  • 打赏
  • 举报
回复
新建SDI的时候在最后把VIEW设置成Eidtview ,在CXXXDoc里面写void CMyDoc::Serialize(CArchive& ar)函数 在CXXXView里面进行初始化 。。。。。。。。。。。。。。
  • 打赏
  • 举报
回复
支持ceidtview

15,979

社区成员

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

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