文档视图结构高级形式.ppt

  1. 1、本文档共129页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2 修改文档类 CProg5Doc: ⑴ 在定义文件中加入视图类头文件: #include "NormalView.h" ⑵ 在 CProg5Doc 的定义中加入保存文本的数据成员: … public: CString m_szTextBuf; // save contents of text … ⑶ 修改 CProg5Doc 类构造函数: CProg5Doc::CProg5Doc() { m_szTextBuf = _T(“”); // set text buffer empty } ⑷ 修改 CProg5Doc::OnNewDocument 和 CProg5Doc::Serialize: BOOL CProg5Doc::OnNewDocument() { if (!CDocument::OnNewDocument()) return FALSE; ((CEditView*)m_viewList.GetHead())->SetWindowText(NULL); // TODO: add reinitialization code here // (SDI documents will reuse this document) m_szTextBuf = _T(“”); // set text buffer empty return TRUE; } void CProg5Doc::Serialize(CArchive& ar) { // CEditView contains an edit control which handles all serialization ((CEditView*)m_viewList.GetHead())->SerializeRaw(ar); if(ar.IsLoading()) { POSITION pos = GetFirstViewPosition(); CNormalView *pView = (CNormalView*)GetNextView(pos); ASSERT_VALID(pView); m_szTextBuf = pView->LockBuffer(); // copy text form edit view to buffer. pView->UnlockBuffer(); } } 3 修改 CNormalView 视图类 ⑴ 在 CNormalView 类定义文件中加入文档类头文件: #include "Prog5Doc.h" ⑵ 为消息 EN_CHAGE 添加反射消息映射和处理函数,以便实时 保存编辑视图窗口中发生了变化的文本。 ON_CONTROL_REFLECT(EN_CHANGE, OnChange) void CNormalView::OnChange() { … CProg5Doc* pDoc = GetDocument(); ASSERT_VALID( pDoc ); pDoc->m_szTextBuf = LockBuffer(); UnlockBuffer(); pDoc->SetModifiedFlag(); } 4 增加一个视图类 CItalicsView 用于斜体加下划线显示文本 ⑴ 定义一个新类 CItalicsView,选择其基类为 CView。 ⑵ 在 CItalicsView 类中添加获取文档指针的函数 GetDocument: 在 CItalicsView 的类定义文件中加入: #include "Prog5Doc.h" … class CItalicsView : public CView { … public: CItalicsView(); // protected constructor used by dynamic creation CProg5Doc* GetDocument(); … }; 在 CItalicsView 的实现文件中添加 GetDocument 的定义代码: CProg5Doc* CItalicsView::GetDocument() //

文档评论(0)

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

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

1亿VIP精品文档

相关文档

相关课程推荐