欢迎来到天天文库
浏览记录
ID:45567343
大小:72.00 KB
页数:6页
时间:2019-11-14
《windows程序设计实验指导书(5)视图-文档编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验五、文档-视图编程实验目的:1、了解windowsMDI程序的文档模板类的作用。2、掌握windows程序文档-视图框架的程序设计原理。3、知道视图的切分方法和单文档多视图的消息处理。实验要求:建立一个windowsMDI(多文档)应用程序,利用视图切分实现对文档中管理的字符串和色彩数据的多种视图的不同控制。实验指导:一、在VC++6.0环境屮建立一个多文档工程。在文档屮添加屈性项:public:CStringmstrData;//stringtextCOLORREFmcolorData;//colorforthestringtext重载OnNewDoc
2、ument()并添加数据初始化代码:BOOLCMultiViewDoc::OnNewDocument(){if(!CDocument::OnNewDocument())rcturnFALSE;//TODO:addreinitializationcodehere//(SDIdocumentswillreusethisdocument)m_strData="SampleDataString〃;m_colorData=RGB(0,0,0);returnTRUE;二、在工程屮添加另外两个视图类,一个视图用于控制显示的数据项的设置,一个视图用于颜色的显示。原来已生成的
3、视图则显示字符串。LJ1.利用资源编辑器添加一个如图所示的对话框资源,注意对话框的风格设为Ch订d类型。并在此基础上利用ClassWizard生成一个基于CFormView的视图类。显示文字〔Edit颜色「RedGreenCBlue在视图屮添加与文档相关的获取文档指针的方法,并添加控件的变量和对控件的消息映射处理。・h文件public://{{AFX_DATA(CControlView)enum{IDD二IDD_DIALOG1};CStringm_str;intm_iColor;//}}AFX_DATApublic:C*Doc*GetDocument();/
4、/Overrides//ClassWizardgeneratedvirtualfunctionoverrides//{{AFX_VIRTUAL(CControlView)protected:virtueilvoidDoDateiExchan£e(CDeiteiExchan^e*pDX);virtualvoidOnUpdate(CView*pScnder,LPARAMlllint,CObjcct*pllint);//}}AFX_VIRTUAL・cpp文件C*Doc*C^View::GetDocument()//non-debu百versionisinlineA
5、SSERT(m_pDocument->lsKindOf(RUNT1ME_CLASS(C*Doc)));return(C*Doc*)mpDocument;voidC*View::0nUpdate(CView*pSender,LPARAMlHint,CObject*pHint){//TODO:Addyourspecializedcodehereand/orcallthebaseclassC*Doc*pDoc二GetDocument();ASSERT_VALID(pDoc);m_str=pDoc->m_strData;if(pDoc->m_colorData二二R
6、GB(255,0,0))m_iColor二0;elseif(pDoc->m_colorData==RGB(0,255,0))m_iColor=1;elseif(pDoc->m_colorData==RGB(0,0,255))miColor二2;elsem_iColor=T;UpdateData(FALSE);}voidC*View::OnDataChange(){if(!UpdateData())return;C*Doc*pDoc二GetDocument();COLORREFcolor二RGB(255*(m_iColor二二0),255*(m_iColor=
7、=1),255*(m_iColor==2));BOOLbUpdate=FALSE;if(mstr!二pDoc->m_strData){""pDoc->m_strData=m_str;bUpdate=TRUE;}if(color!二pDoc->m_colorData){"pDoc->m_colorData=color;bUpdate=TRUE;}辻(bUpdate)//更新所有视图pDoc->UpdateAl1Views(this);2.添加另一个基于CView类的视图,并同样添加获取文档指针的方法和OnDraw()函数中的代码。voidC*View::OnD
8、raw(CDC*pDC){C*Doc*pDoc二Ge
此文档下载收益归作者所有