欢迎来到天天文库
浏览记录
ID:43445849
大小:219.67 KB
页数:12页
时间:2019-10-02
《MFC实验六文档视图和单文档界面》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验六文档/视图和单文档界面1.创建一个单文档界面应用程序,项目名设置wxO3.2.在文档类CWx03Doc中添加数据成员用于保存应用程序的数据。protected:COLORREFn_clrCurrentColor;COLORREFnZclrGrid[4][4];二维数组m_clrGrid用于保存每个方格的颜色,数据成员m_clrCurrentColor用于保存方格被单击时赋给方格的颜色。3.在文档类CWx03Doc的OnNewDocument函数中对数据成员进行初始化:BOOLCWx03Doc::On
2、HevjDocument()3、三个成员函数,如下:AddMemberFunction"上兰二IFunctionType:4、COLORREFFunctionDeclaration:CancelGetCurrentColorOlAccessQPublicProtectedcPrivateStatic一VirtualAddMemberFunctionOKFunctionType:COLORREFCancelFunctionDeclaration:5、GetSquare6、intLintj]AccessGPublicProtectedPrivat7、eStaticVirtualFunctionType:[voidOKCancelFunctionDeclaration:8、SetSquare(intLintjXOLORREFcolor)QPublicProtectedPrivate//IIIStatic厂Virtual函数定义如下:COLORREFCWx03Doc::GetCurrentColor()returnmclrCurrentColor:MWwCOLORREFCWx03Doc::GetSquare(inti9intj)=0&&9、i<=3&&j>=0&&j<=3);returnn_clrGrid[i][j];uoidCWx03Doc::SetSquare(inti9intjfCOLORREFcolor)ASSERT(i>=0&&i<=3&&j>=0&M<=3)R_clrGrid[i][j]-color;SetModiFiedFlag(TRUE);UpdateAllUiews(HULL);GetCurrentColor>GetSquare和SetSquare作为文档和视图之间的桥梁,视图対象通过它们可以访问文档的保护成员。5.编辑C10、WxO3View的OnDraw函数,在视图窗口中绘制网格,并根据文档类中保存的方格颜色来设置方格的颜色。voidCWxO3Uiew::OnDraw(CDC«pDC)SetMapMode(HtLLOENGLISH);〃设置映射模式〃绘制F6个方格-For(intfor(intj-0;j<4;j**)11、c->GetSquare(i9j);〃获取方格的颜色CBrushbrush(color);intx1=(j*100)*50;inty1»(i«-100)・50;intx2-x1*100;inty2-y1-100;CRectrect(x1fy19x29y2);pDC->FillRect(rectffebrush);〃用指定的颜色填充方格〃绘制方格周围的网格线For(intxs50;x<=450;x*=100)pDC->HoueTo(xf・50);pDC->LineTo(xf-450);>For(inty--12、50;y>■・450;y--100)MoueTo(50』);pDC->LineTo(450fy);6.在视图类CWxO3View中添加消息处理函数WM_LBUTTONDOWN的处理函数:voidCWxO3Uiew::OnLButtonDovjn(UINTnFlagstCPointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefaultCUieu::On
3、三个成员函数,如下:AddMemberFunction"上兰二IFunctionType:
4、COLORREFFunctionDeclaration:CancelGetCurrentColorOlAccessQPublicProtectedcPrivateStatic一VirtualAddMemberFunctionOKFunctionType:COLORREFCancelFunctionDeclaration:
5、GetSquare
6、intLintj]AccessGPublicProtectedPrivat
7、eStaticVirtualFunctionType:[voidOKCancelFunctionDeclaration:
8、SetSquare(intLintjXOLORREFcolor)QPublicProtectedPrivate//IIIStatic厂Virtual函数定义如下:COLORREFCWx03Doc::GetCurrentColor()returnmclrCurrentColor:MWwCOLORREFCWx03Doc::GetSquare(inti9intj)=0&&
9、i<=3&&j>=0&&j<=3);returnn_clrGrid[i][j];uoidCWx03Doc::SetSquare(inti9intjfCOLORREFcolor)ASSERT(i>=0&&i<=3&&j>=0&M<=3)R_clrGrid[i][j]-color;SetModiFiedFlag(TRUE);UpdateAllUiews(HULL);GetCurrentColor>GetSquare和SetSquare作为文档和视图之间的桥梁,视图対象通过它们可以访问文档的保护成员。5.编辑C
10、WxO3View的OnDraw函数,在视图窗口中绘制网格,并根据文档类中保存的方格颜色来设置方格的颜色。voidCWxO3Uiew::OnDraw(CDC«pDC)SetMapMode(HtLLOENGLISH);〃设置映射模式〃绘制F6个方格-For(intfor(intj-0;j<4;j**)11、c->GetSquare(i9j);〃获取方格的颜色CBrushbrush(color);intx1=(j*100)*50;inty1»(i«-100)・50;intx2-x1*100;inty2-y1-100;CRectrect(x1fy19x29y2);pDC->FillRect(rectffebrush);〃用指定的颜色填充方格〃绘制方格周围的网格线For(intxs50;x<=450;x*=100)pDC->HoueTo(xf・50);pDC->LineTo(xf-450);>For(inty--12、50;y>■・450;y--100)MoueTo(50』);pDC->LineTo(450fy);6.在视图类CWxO3View中添加消息处理函数WM_LBUTTONDOWN的处理函数:voidCWxO3Uiew::OnLButtonDovjn(UINTnFlagstCPointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefaultCUieu::On
11、c->GetSquare(i9j);〃获取方格的颜色CBrushbrush(color);intx1=(j*100)*50;inty1»(i«-100)・50;intx2-x1*100;inty2-y1-100;CRectrect(x1fy19x29y2);pDC->FillRect(rectffebrush);〃用指定的颜色填充方格〃绘制方格周围的网格线For(intxs50;x<=450;x*=100)pDC->HoueTo(xf・50);pDC->LineTo(xf-450);>For(inty--
12、50;y>■・450;y--100)MoueTo(50』);pDC->LineTo(450fy);6.在视图类CWxO3View中添加消息处理函数WM_LBUTTONDOWN的处理函数:voidCWxO3Uiew::OnLButtonDovjn(UINTnFlagstCPointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefaultCUieu::On
此文档下载收益归作者所有