《Visual C++ 6.0实例教程》教学资源(PPT课件讲稿)第2章 文档和视

第2章文档和视 内容摘要: 1.通过视类与用户交互 2.通过视类与用户交互
第2章 文档和视 内容摘要: 1. 通过视类与用户交互 2. 通过视类与用户交互 返回目录

2.1 21通过视类与用户交互 学习目标 1.在程序中响应鼠标消息 2.在程序中响应键盘消息
2.1 通过视类与用户交互 学习目标 1. 在程序中响应鼠标消息 2. 在程序中响应键盘消息 2.1 返回第2章

程序的实现步骤 2.1 1.利用 App wizard生成单文档程序框架( Doc View) 2.为视类添加数据成员 BOOL m bOuse Dowrη;∥标识鼠标左键是否按下 CuRsor m cross;∥片十字型鼠标句柄 HCURSoR m hArrow;∥标准型鼠标句柄 CPoint m told ∥临时点 CPoint m ptstart; 线的起始点 3.在构造函数中初始化成员变量 CDocViewView C DocViewViewo m bOuse Down false m cRoss Afx GetAppo->LoadStandardCursor(IDC_ CROSS m hArrow Afx GetAppo->LoadStandardCursor(IDC_ ARROW)
程序的实现步骤 1. 利用AppWizard生成单文档程序框架(DocView ) 2. 为视类添加数据成员 2.1 BOOL m_bMouseDown; //标识鼠标左键是否按下 HCURSOR m_hCross; //十字型鼠标句柄 HCURSOR m_hArrow; //标准型鼠标句柄 CPoint m_ptOld; //临时点 CPoint m_ptStart; //画线的起始点 3. 在构造函数中初始化成员变量 CDocViewView::CDocViewView() { m_bMouseDown = false; m_hCross = AfxGetApp()->LoadStandardCursor(IDC_CROSS); m_hArrow = AfxGetApp()->LoadStandardCursor(IDC_ARROW); }

4.为视类添加鼠标动作响应函数 2.1 void CDocViewView:: OnLButtonDown (UINT nFlags, CPoint point) //TODO: Add your message handler code here and/or call default m bOuse down=true;∥鼠标左键按下 m_ ptstart point ∥画线的起点 m told point ∥临时点 SetCaptureo ∥将鼠标消息发送到视窗口 CRect rect GetclientRect(&rect) ∥得到客户窗口的大小 ClientToScreen(&rect);∥将当前窗口坐标转换成屏幕坐标 Clip Cursor(&rect) ∥把鼠标限定在其参数指定的矩形区域内 Setcursor(m cRoss) ∥设置鼠标形状为十字形 CView: OnLButton Down(nF lags, point)
2.1 void CDocViewView:: OnLButtonDown (UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default m_bMouseDown = true; // 鼠标左键按下 m_ptStart = point; // 画线的起点 m_ptOld = point; // 临时点 SetCapture(); // 将鼠标消息发送到视窗口 CRect rect; GetClientRect(&rect); // 得到客户窗口的大小 ClientToScreen(&rect); // 将当前窗口坐标转换成屏幕坐标 ClipCursor(&rect); // 把鼠标限定在其参数指定的矩形区域内 SetCursor(m_hCross); // 设置鼠标形状为十字形 CView::OnLButtonDown(nFlags, point); } 4.为视类添加鼠标动作响应函数

2.1 4.为视类添加鼠标动作响应函数 void CMy DrawView On Move(UINT nFlags, CPoint point) // TODO: Add your message handler code here and/or call default if( m bOuse Down CClientDC dc(this) dc. SetROP2( R2 NOT); dc. Move to( m pt start);∥这两行代码擦除从起点(鼠标按下点)到 dc Line To( m_told ) ∥上次鼠标移动到的位置之间的临时线 dc. Move to( m pt start);∥这两行代码从起点到鼠标当前位置画线 dc Line To( point m told= point;∥/鼠标当前位置在下一次鼠标移动事件看来就是"旧位置 CView On MouseMove (nFlags, point)
2.1 void CMyDrawView::OnMouseMove(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default if( m_bMouseDown ) { CClientDC dc(this); dc.SetROP2( R2_NOT ); dc.MoveTo( m_ptStart ); //这两行代码擦除从起点(鼠标按下点)到 dc.LineTo( m_ptOld ); //上次鼠标移动到的位置之间的临时线 dc.MoveTo( m_ptStart ); //这两行代码从起点到鼠标当前位置画线 dc.LineTo( point ); // m_ptOld = point; //鼠标当前位置在下一次鼠标移动事件看来就是"旧位置" } CView::OnMouseMove(nFlags, point); } 4.为视类添加鼠标动作响应函数

void CMy DrawView OnLButtonUp(UINT nFlags, CPoint point) if( m bLouse Down m bouse down false Release Captured ClipCursor( NULL) CClientDC dc(this) dc. SetROP2( R2 NOT) dc. Move To(m_ pt Start);∥这两行代码擦除从起点(鼠标按下点)到 dc Line to( m told);∥上次鼠标移动到的位置之间的临时线 dc. SetROP2( R2 COPYPEN dc. Move to( m pt start);∥这两行代码从起点到鼠标当前位置画线 dc Line To( point ) ∥ Set Cursor(m hArrow) ∥设置鼠标形状为标准箭头形 CView: OnLButtonUpnF lags, point)
void CMyDrawView::OnLButtonUp(UINT nFlags, CPoint point) { if( m_bMouseDown ) { m_bMouseDown = false; ReleaseCapture(); ClipCursor( NULL ); CClientDC dc(this); dc.SetROP2( R2_NOT ); dc.MoveTo( m_ptStart ); //这两行代码擦除从起点(鼠标按下点)到 dc.LineTo( m_ptOld ); //上次鼠标移动到的位置之间的临时线 dc.SetROP2( R2_COPYPEN ); dc.MoveTo( m_ptStart ); //这两行代码从起点到鼠标当前位置画线 dc.LineTo( point ); // SetCursor(m_hArrow); //设置鼠标形状为标准箭头形 } CView::OnLButtonUp(nFlags, point); } 2.1

程序的实现步骤2 2.1 为视类添加数据成员为视类添加数据成员 int m nline ∥记录已输入字符行数 CString m strDisplay: ∥.存当前字符串的变量 2.在构造函数中初始化成员变量 CDocViewView: CDocViewViewO M/ TODO: add construction code here m nLine =0 m bOuse Down false m cRoss= Afx GetAppo->LoadStandardCursor(IDC CROSS) m hArrow AfX GetAppo->LoadStandardCursor(IDC ARROW
程序的实现步骤_2 1.为视类添加数据成员为视类添加数据成员 2.1 int m_nLine; //记录已输入字符行数 CString m_strDisplay; //保存当前字符串的变量 2. 在构造函数中初始化成员变量 CDocViewView::CDocViewView() { // TODO: add construction code here m_nLine = 0; m_bMouseDown = false; m_hCross = AfxGetApp()->LoadStandardCursor(IDC_CROSS); m_hArrow = AfxGetApp()->LoadStandardCursor(IDC_ARROW); }

3.为视类添加键盘消息响应函数 2.1 void CDocView View: OnChar(UINT nChar, UINT nRepCnt, UINT nFlags if(nChar== RETURN)∥如果按下回车键 m strDisplay Empty 0: m nline++ else if(( m strDisplay. GetLength0<64)∥当前行字符数小于64 m strDisplay + nchar; CClientDC dc(this) TEⅩ TMETRIC tm; dc. Get TextMetrics(&tm) int nLineheight =tm. tmHeight tm tmEXternaILeading dc Textout(O, m nLine * nLine Height, m strDisplay) CView: OnChar(nChar, nRepCnt, nF lags)
3.为视类添加键盘消息响应函数 2.1 void CDocViewView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) { if(nChar == VK_RETURN) //如果按下回车键 { m_strDisplay.Empty(); m_nLine++; } else if(m_strDisplay.GetLength() < 64) //当前行字符数小于64 m_strDisplay += nChar; CClientDC dc(this); TEXTMETRIC tm; dc.GetTextMetrics(&tm); int nLineHeight = tm.tmHeight + tm.tmExternalLeading; dc.TextOut(0, m_nLine * nLineHeight, m_strDisplay); CView::OnChar(nChar, nRepCnt, nFlags); }

2.1 基本知识 1. AfxGetApp( LoadStandardCursor (IDC Cross) 2 Getclientrect(&rect);∥得到客户窗口的大小 3 ClientToScreen(&rect);∥将当前窗口坐标转换成屏幕坐标 4 ClipCursor(▭∥把鼠标限定在其参数指定的矩形区域 内 5 Setcursor( m aCross;∥设置鼠标形状为十字形
基本知识 1. AfxGetApp() LoadStandardCursor(IDC_CROSS); 2.GetClientRect(&rect); // 得到客户窗口的大小 3.ClientToScreen(&rect); // 将当前窗口坐标转换成屏幕坐标 4.ClipCursor(&rect); // 把鼠标限定在其参数指定的矩形区域 内 5.SetCursor(m_hCross); // 设置鼠标形状为十字形 2.1

2.2 22利用文档类处理数据 学习目标 1.在文档类中保存数据
2.2 利用文档类处理数据 学习目标 1. 在文档类中保存数据 2.2 返回第2章
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《Visual C++ 6.0实例教程》教学资源(PPT课件讲稿)目录.ppt
- 《电子政务教案》第8章 电子政务与政府流程优化.ppt
- 《电子政务教案》第5章 全球电子政务建设实践.ppt
- 《电子政务教案》第4章 政府公共服务的电子化.ppt
- 《电子政务教案》第3章 电子政务的基础与核心.ppt
- 《电子政务教案》第2章 电子政务对政府管理的影响.ppt
- 《电子政务教案》第1章 信息技术的发展与电子政务的产生.ppt
- 《电子政务教案》第11章 我国电子政务的发展战略.ppt
- 《电子政务教案》第10章 电子政务的法律环塘.ppt
- 《电子政务教案》第9章 电子政务的安全管理.ppt
- 《电子政务教案》第7章 电子政务的系统规划与建设.ppt
- 《电子政务教案》第6章 电子政务的技术基础.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第四章 电子数据交换.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第十章 电子商务网站的建设.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第六章 电子商务支付系统.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第八章 电子商务的物流体系.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第五章 电子商务安全技术.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第二章 电子商务技术基础.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第九章 电子商务法律.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第三章 电子商务的应用框架和交易模式.ppt
- 《Visual C++ 6.0实例教程》教学资源(PPT课件讲稿)第3章 对话框与控件.ppt
- 《Visual C++ 6.0实例教程》教学资源(PPT课件讲稿)第4章 菜单、快捷键和控制条.ppt
- 《Visual C++ 6.0实例教程》教学资源(PPT课件讲稿)第5章 图形操作.ppt
- 《Visual C++ 6.0实例教程》教学资源(PPT课件讲稿)第6章 文件操作.ppt
- 《Visual C++ 6.0实例教程》教学资源(PPT课件讲稿)第7章 MFC通用类.ppt
- 《Visual C++ 6.0实例教程》教学资源(PPT课件讲稿)第8章 异常处理和诊断.ppt
- 《Visual C++ 6.0实例教程》教学资源(PPT课件讲稿)第9章 多线程.ppt
- 清华大学:《科技文献检索》课程教学课件(PPT讲稿)绪论(主讲:花芳).ppt
- 清华大学:《科技文献检索》课程教学课件(PPT讲稿)第一章 文献及概念.ppt
- 清华大学:《科技文献检索》课程教学课件(PPT讲稿)第二章 文献检索原理及方法.ppt
- 清华大学:《科技文献检索》课程教学课件(PPT讲稿)工程索引 The Engineering Index(Ei简介).ppt
- 清华大学:《科技文献检索》课程教学课件(PPT讲稿)Elsevier全文电子期刊说明.ppt
- 清华大学:《科技文献检索》课程教学课件(PPT讲稿)IEEE/IEE Electronic Library(IEL).ppt
- 清华大学:《科技文献检索》课程教学课件(PPT讲稿)科学文摘数据库(INSPEC).ppt
- 清华大学:《科技文献检索》课程教学课件(PPT讲稿)博硕士论文数据库.ppt
- 清华大学:《科技文献检索》课程教学课件(PPT讲稿)机检上课及实习安排.doc
- 清华大学:《科技文献检索》课程教学课件(PPT讲稿)Science Abstracts(SA).ppt
- 清华大学:《科技文献检索》课程教学课件(PPT讲稿)科学引文索引.ppt
- 清华大学:《科技文献检索》课程教学资源(学习资料)参考课题.doc
- 《计算机应用技术基础》第五章 创建图表体验数据功析效果.ppt