网站大量收购独家精品文档,联系QQ:2885784924

《Visual C++基础教程》课件_第13章.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

voidCReadTxtDoc::OnReadFile(){ m_strFile.RemoveAll(); //删除数组中的所有元素 CFileDialogfileDlg(TRUE,NULL,NULL,0,“文本文件|*.txt||”); //定义“打开”对话框 fileDlg.DoModal(); //打开“打开”对话框 CStringfileName=fileDlg.GetPathName(); //获取用户选择的文件名及路径 if(fileName.IsEmpty()) //如果用户没有选择文件,则直接返回 { return; } CStdioFilefile; try{ file.Open(fileName,CFile::modeRead|CFile::typeText); } catch(CFileException*e) { e-ReportError(); e-Delete(); } CStringLineStr; try{ while(file.ReadString(LineStr))//循环读取文件并添加到数组中 { m_strFile.Add(LineStr); } } catch(CFileException*e) { e-ReportError(); } file.Close(); UpdateAllViews(NULL); //更新视图}(5)利用ClassWizard在文档类中重载DeleteContents函数,当用户执行“文件”→“新建”菜单命令时删除原有文档数据。voidCReadTxtDoc::DeleteContents(){ m_strFile.RemoveAll(); CDocument::DeleteContents();}(6)在视图类中添加成员函数SetViewSize,该函数根据文档的大小设置滚动视图大小。添加数据成员m_nHeightLine,用于记录视图中当前设备环境下每行文本的高度。public: intm_nHeightLine; voidSetViewSize();SetViewSize函数如下:voidCReadTxtView::SetViewSize(){ CReadTxtDoc*pDoc=GetDocument(); intnLines=pDoc-m_strFile.GetSize(); //获取文档数据的行数 intnHeight=nLines*m_nHeightLine+20; //计算显示文档的高度 CSizesizeTotal=CSize(0,nHeight); CSizesizePage=CSize(0,nHeight/5); CSizesizeLine=CSize(0,m_nHeightLine); SetScrollSizes(MM_TEXT,sizeTotal,sizePage,sizeLine);}修改视图类的OnInitialUpdate函数,调用SetViewSize设置滚动视图大小:voidCReadTxtView::OnInitialUpdate(){ CScrollView::OnInitialUpdate(); SetViewSize();}利用ClassWizard在视图类中添加WM_CREATE消息的处理函数。当创建视图时,计算当前设备环境下每行文本的高度:intCReadTxtView::OnCreate(LPCREATESTRUCTlpCreateStruct){ if(CScrollView::OnCreate(lpCreateStruct)==-1) return-1; CClientDCdc(this); TEXTMETRICtm; dc.GetTextMetrics(tm); m_nHeightLine=tm.tmHeight+tm.tmExternalLeading; return0;}利用ClassWizard在视图类中重载OnUpdate,当文档类调用UpdateAllViews时调用该函数更新视图:voidCReadTxtView::OnUpdate(CView*pSender,LPARAMlHint,CObject*pHint)

文档评论(0)

酱酱 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档