《Visual C++ 6.0实例教程(第二版)》-杨国兴-电子教案 第5章 文档和视

上传人:E**** 文档编号:89409312 上传时间:2019-05-24 格式:PPT 页数:15 大小:169.50KB
返回 下载 相关 举报
《Visual C++ 6.0实例教程(第二版)》-杨国兴-电子教案 第5章  文档和视_第1页
第1页 / 共15页
《Visual C++ 6.0实例教程(第二版)》-杨国兴-电子教案 第5章  文档和视_第2页
第2页 / 共15页
《Visual C++ 6.0实例教程(第二版)》-杨国兴-电子教案 第5章  文档和视_第3页
第3页 / 共15页
《Visual C++ 6.0实例教程(第二版)》-杨国兴-电子教案 第5章  文档和视_第4页
第4页 / 共15页
《Visual C++ 6.0实例教程(第二版)》-杨国兴-电子教案 第5章  文档和视_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《《Visual C++ 6.0实例教程(第二版)》-杨国兴-电子教案 第5章 文档和视》由会员分享,可在线阅读,更多相关《《Visual C++ 6.0实例教程(第二版)》-杨国兴-电子教案 第5章 文档和视(15页珍藏版)》请在金锄头文库上搜索。

1、第5章 文档和视,学习目标,在视中显示数据 在文档中保存数据 响应鼠标和键盘消息,5.1 通过视类与用户交互,在视中按下鼠标左键,拖动鼠标到另一个位置后松开,即在两点间画出一条直线,在画线过程中鼠标为十字型,而在其他状态鼠标为标准箭头型。还可以输入一些字符显示在屏幕上,最初输入的字符显示在屏幕的第一行,在按Enter键后,当前行输入结束,再输入的字符将显示在下一行。,第5章 文档和视,程序的实现步骤,生成单文档程序框架(DocView ) 为视类添加数据成员并初始化 为视类添加鼠标消息响应函数 为视类添加键盘消息响应函数,5.1 通过视类与用户交互,第5章 文档和视,步骤1 生成单文档程序框架

2、(DocView ),项目名称: DocView 选择基于对话框应用程序,步骤2 为视类添加数据成员并初始化1,BOOL m_bMouseDown; /标识鼠标左键是否按下 HCURSOR m_hCross; /十字型鼠标句柄 HCURSOR m_hArrow; /标准型鼠标句柄 CPoint m_ptOld; /临时点 CPoint m_ptStart; /画线的起始点 int m_nLine; /记录已输入字符行数 CString m_strDisplay; /保存当前字符串的变量,5.1 通过视类与用户交互,第5章 文档和视,步骤2 为视类添加数据成员并初始化2,CDocViewView

3、:CDocViewView() / TODO: add construction code here m_nLine = 0; m_bMouseDown = false; m_hCross = AfxGetApp()-LoadStandardCursor(IDC_CROSS); m_hArrow = AfxGetApp()-LoadStandardCursor(IDC_ARROW); ,5.1 通过视类与用户交互,第5章 文档和视,步骤3 为视类添加鼠标消息响应函数,函数CDocViewView:OnLButtonDown() 函数CDocViewView:OnMouseMove() 函数CD

4、ocViewView:OnLButtonUp(),5.1 通过视类与用户交互,第5章 文档和视,步骤4 为视类添加键盘消息响应函数,Class name: CDocViewView Object IDs: CDocViewView Message: WM_CHAR 函数:CDocViewView:OnChar(),小结,函数::AfxGetApp(),:ClipCursor(), :SetCursor() ,ReleaseCapture() CWinApp:LoadStandardCursor() CWind:SetCapture(), GetClientRect(), ClientToScr

5、een() CDC:SetROP2(),GetTextMetrics(), TextOut() CView:GetDocument(),5.1 通过视类与用户交互,第5章 文档和视,5.2 利用文档类处理数据,上一节程序,实现了画线和显示输入字符串的功能,但画出的线和显示的字符没有保存起来,因此当视窗口重画时(如窗口大小发生变化,或被其他窗口覆盖再重新显示),原来显示的直线和字符就都消失了。本节在上一节程序的基础上,实现画线数据和输入字符数据的保存,并在窗口重画时重新显示线段和字符。,第5章 文档和视,程序的实现步骤,添加类CLine 在文档类中添加保存数据的变量 修改视类成员函数OnButt

6、onUp()和OnChar() 在文档类中添加重画直线和重写文本的函数 修改视类成员函数OnDraw(),5.2 利用文档类处理数据,第5章 文档和视,步骤1 添加类CLine,文件Line.h 文件Line.cpp,步骤2 在文档类中添加保存数据的变量,第5章 文档和视,5.2 利用文档类处理数据,public: CString m_strLastLine; /最后一行字符 CStringList m_strList; /除最后一行之外的所有字符串 CPtrList m_LineList; /存放画出的所有线段,步骤3 修改视类成员函数OnButtonUp()和OnChar()_1,第5章

7、文档和视,5.2 利用文档类处理数据,void CDocViewView:OnLButtonUp(UINT nFlags, CPoint point) CDocViewDoc *pDoc = GetDocument(); /得到文档类指针 CLine *pLine = new CLine(m_ptStart, point); /创建CLine对象 pDoc-m_LineList.AddTail( (void *) pLine); /将pLine加入到链表中 CView:OnLButtonUp(nFlags, point); ,在DocViewView.cpp 中包含CLine类的头文件。 #i

8、nclude “Line.h“,步骤3 修改视类成员函数OnButtonUp()和OnChar()_2,第5章 文档和视,5.2 利用文档类处理数据,void CDocViewView:OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) CDocViewDoc *pDoc = GetDocument(); if(nChar = VK_RETURN) pDoc-m_strList.AddTail(m_strDisplay); pDoc-m_strLastLine.Empty(); else if(m_strDisplay.GetLength() m_str

9、LastLine = m_strDisplay; ,步骤4 在文档类中添加重画直线和重写文本的函数,第5章 文档和视,5.2 利用文档类处理数据,添加函数CDocViewDoc:DrawText() 添加函数CDocViewDoc:DrawLine() 在DocViewDoc.cpp 中包含CLine类的头文件。 #include “Line.h“,步骤5 修改视类成员函数OnDraw(),第5章 文档和视,5.2 利用文档类处理数据,void CDocViewView:OnDraw(CDC* pDC) CDocViewDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); / TODO: add draw code for native data here pDoc-DrawLine(pDC); pDoc-DrawText(pDC); ,小结,保存数据使用的结构 CLine类 CStringList:AddTail(),GetHeadPosition(), GetNext() ,GetAt() CPtrList :AddTail(),GetHeadPosition(), GetNext(),GetAt(),第5章 文档和视,5.2 利用文档类处理数据,

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

当前位置:首页 > 高等教育 > 大学课件

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