《可视化程序设计》实验指导书

上传人:M****1 文档编号:509559211 上传时间:2023-03-04 格式:DOC 页数:20 大小:402KB
返回 下载 相关 举报
《可视化程序设计》实验指导书_第1页
第1页 / 共20页
《可视化程序设计》实验指导书_第2页
第2页 / 共20页
《可视化程序设计》实验指导书_第3页
第3页 / 共20页
《可视化程序设计》实验指导书_第4页
第4页 / 共20页
《可视化程序设计》实验指导书_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《《可视化程序设计》实验指导书》由会员分享,可在线阅读,更多相关《《可视化程序设计》实验指导书(20页珍藏版)》请在金锄头文库上搜索。

1、实验六 单文档与多文档实验目的1. 熟悉VC 6.0的MFC框架2. 掌握单文档使用方法实验内容创建单文档应用程序,完成一定的功能。实验步骤:创建单文档应用程序的一般步骤:利用AppWizard创建单文档应用程序框架。在文档类中声明保存文档数据所需要数据对象。完成文档类的OnNewDocument函数,初始化新文档。完成文档类的Serialize函数,保持和加载文档数据。完成视类的OnInitialUpdate函数,初始化显示。完成视类的OnDraw函数,显示当前文档内容。在视类中加入可以使用户编辑文档数据所需的代码。本实验指导通过以下4 个实验循序渐进演示创建单文档应用程序的基本操作,在前一

2、个例子中演练过的操作,在后面的中出现时不再重复描述。例1 一个简单的单文档应用程序记事本程序例2 简单文本和图形输出例3 利用定时器输出滚动字幕例4 文档串行化编程例1. 一个简单的单文档应用程序记事本程序1. 只要在AppWizard的Step 6将Base Class设置为EditView,AppWizard就自动完成了一个记事本程序的设计:2. 运行程序,即可测试记事本的各种功能:3.说明:(1)打开Workshop中的Class视图,可以看到,一个简单的单文档应用程序向导自动建立五个类:向导自动建立的类相应源文件其他源文件相应头文件其他头文件CAboutDlgStdAfx.cppStd

3、Afx.hCXxxAppXxx.cppXxx.rcXxx.hResource.hCXxxViewXxxView.cppXxxView.hCXxxDocXxxDoc.cppXxxDoc.hCMainFrameMainFrame.cppMainFrame.h视(View)显示用户程序的数据及处理用户与文档的交互文档对象永久存储(磁盘文件)MainFrame框架窗口(2)MFC的文档视结构:(3)每个类的主要函数:void CAboutDlg:DoDataExchange(CDataExchange* pDX)int CMainFrame:OnCreate(LPCREATESTRUCT lpCrea

4、teStruct)/创建窗体的工具栏,状态栏等BOOL CMainFrame:PreCreateWindow(CREATESTRUCT& cs)BOOL CXxxApp:InitInstance()void CXxxApp:OnAppAbout()BOOL CXxxDoc:OnNewDocument()/初始化文档字符数据、字体信息等void CXxxDoc:Serialize(CArchive& ar)BOOL CXxxView:PreCreateWindow(CREATESTRUCT& cs)void CXxxView:OnDraw(CDC* pDC) BOOL CXxxView:OnPr

5、eparePrinting(CPrintInfo* pInfo)/弹出打印对话框void CXxxView:OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo) void CXxxView:OnEndPrinting(CDC* pDC, CPrintInfo* pInfo)CXxxDoc* CXxxView:GetDocument() / non-debug version is inline例2. 简单文本和图形输出建立一个简单的单文档应用程序SimpleTextPicture,通过修改OnDraw函数在视(View)中输出信息或画图。OnDraw函数在S

6、impleTextPictureView.cpp文件中,专门用于输出信息或画图。负责视图显示功能(包括打印、显示、预览等)例21 显示正方形和文本void CSimpleTextPictureView:OnDraw(CDC* pDC)CSimpleTextPictureDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data herepDC-TextOut(10,120,Hello World!);pDC-Rectangle(20,20,100,100);在AppWizard生成的OnD

7、raw函数中加入以黑体字给出的两行代码,运行程序,显示如下:例22显示彩色图形和文本void CSimpleTextPictureView:OnDraw(CDC* pDC)CSimpleTextPictureDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereCPen pen;CBrush brush;pen.CreatePen(PS_SOLID, 3, RGB(250,0,0);brush.CreateSolidBrush(RGB(0,250,0);pDC-SelectO

8、bject(pen);pDC-SelectObject(brush);pDC-Ellipse(100,200,300,300);DeleteObject(pen);DeleteObject(brush);CString str(Hello World!);pDC-SetTextColor(RGB(0,0,250);pDC-TextOut(120,150,str);pDC-SetTextColor(RGB(125,125,125);double a=31.4,888.54;char ch10;CString str1;str1.Format(%f,a0);pDC-TextOut(20,40,st

9、r1);str1.Format(%f,a1);pDC-TextOut(20,60,str1);gcvt(a1,10,ch);pDC-TextOut(20,100,ch);gcvt(a0,10,ch);pDC-TextOut(20,120,ch);例2. 3 画一个太极图void CSimpleTextPictureView:OnDraw(CDC* pDC)CSimpleTextPictureDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereCBrush b1,b2;CPe

10、n p1,p2;COLORREF r1,r2;r1=RGB(250,250,250);r2=RGB(0,0,0);p1.CreatePen(1,1,r1);p2.CreatePen(1,1,r2);b1.CreateSolidBrush(r1);b2.CreateSolidBrush(r2);pDC-SelectObject(b1);pDC-Pie(200,150,320,270,260,150,260,270);pDC-SelectObject(b2);pDC-Pie(200,150,320,270,260,270,260,150);pDC-Pie(230,151,290,210,260,1

11、50,260,180);pDC-SelectObject(b1);pDC-SelectObject(p1);pDC-Pie(230,210,290,269,260,270,260,210); pDC-Ellipse(250,170,270,190);pDC-SelectObject(b2);pDC-Ellipse(250,230,270,250);CFont font;font.CreateFont(0,0,0,0,800,0,0,0,OEM_CHARSET, OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITC

12、H,楷体);pDC-SelectObject(&font);pDC-TextOut(232,120,太极图);例3. 利用定时器输出滚动字幕1. 创建一个简单的单文档应用程序RollingString; 2. 在RollingStringView.h中添加变量定义代码如下(黑体字部分):public:virtual CRollingStringView();#ifdef _DEBUGvirtual void AssertValid() const;virtual void Dump(CDumpContext& dc) const;#endifprotected:private:int n; /

13、定义变量在CRollingStringView构造函数中初始化变量nCRollingStringView:CXxx2View()/ TODO: add construction code heren=0;3. 在RollingStringView.cpp文件中修改OnDraw函数:void CRollingStringView:OnDraw(CDC* pDC)CRollingStringViewDoc* pDoc = GetDocument();pDC-SetTextColor(RGB(0,0,235);pDC-SetBkMode(TRANSPARENT);CFont font;font.Cr

14、eateFont(28,15,0,0,FW_NORMAL,false,false,false,DEFAULT_CHARSET,OUT_DEVICE_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,隶书);pDC-SelectObject(&font);pDC-TextOut(n,100,世上无难事,只要肯登攀!);n=n+20;RECT r;GetClientRect(&r);if(nr.right-r.left)n=0; 4. 添加三条消息映射,OnLButtonDblClk、OnRButtonDblClk和OnTime,并加入代码:void CRollingStringView:OnLButtonDblClk(UINT nFlags, CPoint point) / TODO: Add your message hand

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题 > 初中试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号