电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

面向对象编程技术2

165页
  • 卖家[上传人]:zw****58
  • 文档编号:56905022
  • 上传时间:2018-10-17
  • 文档格式:PPT
  • 文档大小:1.24MB
  • / 165 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、1,第一章 Visual C+集成开发环境简介,2,项目的创建与编译、链接过程,3,Visual C+ IDE功能组成,编辑: AutoComplete、IntelliSense 编译: 预编译头文件(stdafx.h),可以加快编译速度 链接: 增量式链接、ProjectSettingsLinkLink Incrementally 调试:Edit & Continue,4,Visual C+功能组成,AppWizard:应用程序导航(框架)。 ClassWizard:类导航,5,Visual C+功能组成:ResourceEditor,Wysiwyg Dialog Menu ToolBar Icon Bitmap Accelerator String table VersionInfo,6,Visual C+功能组成,SourceBrowser:可以方便的观察各种信息。 Online Help(MSDN需要安装) 调试工具 Trace、WinDiff、Spy+、ActiveX测试容器,7,开发Windows应用程序的几种选择,使用win32 API的C语言程序,也称为SDK编程; 使

      2、用win32 API编写自己的类库,实质上也是一种SDK编程; 使用MFC应用程序框架,MFC是微软提供的一种类库,也是基于SDK编写; 使用其他的应用程序框架(OWL),8,第二章 SDK风格的Windows程序设计,Windows编程主要需要了解如下要点: (1)消息机制 (2)Windows图形设备接口 (3)基于资源的编程 (4)基于动态链接库 (5)Win32应用程序编程接口,9,Dos下 的消息处理,DOS操作系统,main(),调用库函数或 调用自定义函数,程序需要获得用户击键或使用操作系统功能时,调用适当的函数即可。,10,Windows操作系统,调用WinMain()函数 其主要功能是: 注册窗口类 创建主窗口 显示主窗口 进入消息循环,windows下的消息处理,调用WndProc()消息函数 其主要功能是: 处理各种消息,消息到来,处理完成,程序启动,空闲,11,一个不用MFC框架的Windows程序,必须有一个WinMain()函数,格式如下: int WINAPI WinMain(HINSTANCE CurInstance,HINSTANCE PreInsta

      3、nce,LPSTR CmdLine,int ShowStyle) 必须有一个消息处理函数,格式如下: Long FAR PASCAL WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam),12,WinMain的流程,Windows操作系统启动程序,执行进入WinMain()函数 注册窗口类(通常一次) 创建主窗口 显示主窗口 进入消息循环 遇到WM_CLOSE消息退出,13,WinMain的四个参数,CurInstance:当前实例的句柄 PreInstance:同一程序的前一个实例(一次运行) CmdLine:命令行参数,是一个以0结尾的ANSI字符串,不含应用程序名 ShowStyle:显示窗口的方式,有如下几种: SW_SHOWNORMAL,SW_SHOWMINIMIZED,SW_SHOWMAXIMIZED,14,WndProc中不可缺少的default分支,通过调用DefWindowProc,来处理所有未被处理的消息,调用形式如下: return DefWindowProc(hWnd,msgID,wParam,lPara

      4、m);,15,显示一个字符串,绘制设备上下文 BeginPaint() EndPaint(),16,添加资源,菜单 对话框,17,SDK程序向MFC程序转变,第一步:WinMain改造为CWinApp 第二步:窗口函数改造为消息映射,18,Win32 API应用程序的修改,InitApplication InitInstance 消息映射结构体,19,为什么使用MFC,是微软提供的Windows编程接口 使应用程序的结构标准化 使应用程序小而且快(DLL) Visual C+降低编码复杂程度 MFC库具有丰富的特性,20,第三章 用AppWizard创建的第一个MFC程序,目的:如何编制一个具有一定功能的MFC类库应用程序(引入简单的视图/文档概念) 什么是视图 用户角度:与其他Windows窗口一样的窗口 程序员:从MFC的Cview类派生的类的一个对象 单文档界面和多文档界面 单文档:一次只能打开一个文档(NotePad) 多文档:一次能打开多个文档(Word),21,应用程序的主要元素 WinMain函数 CMyApp类-theApp CMyApp:InitInstance();

      5、 CMyApp:Run() ;/CMyApp:OnIdle() CMyFrame类 CMyFrame:OnLButtonDown、CMyFrame:OnPaint()、CMyFrame:OnDraw() 关闭主画面窗口后关闭应用程序。,22,MFC库消息映射,MFC库对Windows消息映射不采用虚拟函数,而通过宏把特定的消息映射到派生类成员函数。主要是为避免大量的vtable开支。 菜单命令消息和按扭消息的处理与Windows消息一样。 一个MFC消息处理程序需要一个函数原型、一个函数体和一个在消息映射中的项。,23,MFC库消息映射,afx_msg void OnLButtonDown(UINT nFlags,Cpoint point) CMyFrame:OnLButtonDown(UINT nFlags,CPoint point) BEGIN_MESSAGE_MAP(CMyFrame,CFrameWnd) ON_WM_LBUTTONDOWN() END_MESSAGE_MAP(),24,文档和视图,文档-代表数据模型,基类是CDocument 视图-代表用户接口,基类是Cview

      6、,25,第一个MFC程序,什么是视图 用户角度:与其他Windows窗口一样的窗口 程序员:从MFC的Cview类派生类的一个对象 单文档界面和多文档界面 单文档:一次只能打开一个文档(NotePad) 多文档:一次能打开多个文档(Word) 在窗口中绘图 通过响应OnDraw()函数来完成绘图 设备上下文 图形设备对象,26,资源编辑器 ex03a.rc包含 afxres.h(只读符号) afxres.rc(通用组件) resource.h(自定义符号) Debug与Release目标 启用诊断宏(C:WINNTafx.ini TraceEnabled=1) Tools/MFC Tracer/enable tracing 予编译头文件(stdafx.cpp stdafx.h),27,在视图窗口中绘图,通过修改OnDraw()函数来完成绘图 是CView类的虚拟成员函数,每次视图重画时调用(WM_PAINTOnPaintOnDraw) 如果程序的数据被改变,则可以调用视图的Invalidate()成员函数,并最终调用OnDraw() InvalidateWM_PAINTOnDraw()

      7、 对视图窗口的重画不要过于频繁 画图过程中涉及的MFC类 设备上下文 其他图形设备对象,28,设备上下文,Windows系统不允许直接操作显示硬件,而是通过一个抽象层设备上下文来进行通讯 MFC编程中,设备上下文是CDC及其派生类的对象 添入代码:,29,资源,资源编辑器 ex03a.rc包含 加速器、对话框、图标、菜单、字符串、工具条、版本信息 afxres.h(只读符号),通用的MFC库资源 afxres.rc(通用组件),通用的MFC库资源 resource.h(自定义符号),30,Debug与Release目标,分两个版本:发行版和调试版 区别:源码调试、诊断宏、链接库、编译优化等方面不同 启用诊断宏(C:WINNTafx.ini TraceEnabled=1) Tools/MFC Tracer/enable tracing 予编译头文件(stdafx.cpp stdafx.h) /Yc(stdafx.cpp)、/Yu(复用)、/Fp(pch文件路径)编译开关,31,第四章 基本事件处理、映射模式,MFC类库中有很多On-函数由框架调用,完成对事件的响应。 他们不是虚拟函数,必

      8、须通过消息映射结构,使应用框架和我们的代码关联 消息映射 当用户在视图中按下鼠标,Windows发送WM_LBUTTONDOWN消息给视图窗口,视图窗口必须有一个OnLButtonDown(UINT nFlags,CPoint point)成员函数来响应该消息,头文件中加入消息处理函数原型afx_msg void OnLButtonDown(UINT nFlags,CPoint point),通过消息映射宏将框架和函数关联,将消息和消息的响应函数连接的过程称为消息映射。,32,消息映射的步骤:,定义函数:void CMyView:OnLButtonDown(UINT nFlags,CPoint point) 函数原型:afx_msg void OnLButtonDown(UINT nFlags,CPoint point) 消息映射宏 BEGIN_MESSAGE_MAP() ON_WM_LBUTTONDOWN END_MESSAGE_MAP() 头文件中添加: DECLARE_MESSAGE_MAP(),33,保存视图的状态,通过一些状态的变化反映事件,在引入文档类之前,存放在视图的数据

      9、成员中 CRect m_rectEllipse;UINT m_nColor 数据成员初始化:放在视图的构造函数中 CEx04aView:CEx04aView():m_rectEllipse(0,0,200,200),m_nColor(GRAY_BRUSH),34,如何反映事件,鼠标点击不会引起重画,需要调用: CWnd:InvalidateRect(LPRECT rect); 视图的客户区: CRect,CSize,Cpoint及其相互运算 如何判断点在矩形内部 CRect rect; if(rect.PtInRect(point). 如何判断点在区域内部 CRgn rgn; rgn.CreateEllipticRgnIndirect(m_rectEllipse); if(rgn.PtInRegion(point). 实例,35,映射方式,为使显示与显示分辨率无关,应使用不同于以像素为单位的坐标系统 设备坐标-以像素表示的坐标值。 逻辑坐标-当前映射方式下的坐标值。 映射方式-逻辑坐标和设备坐标之间的比例关系。 Windows映射方式,映射方式 逻辑单位 MM_LOENGLISH 0.01 inch MM_HIENGLISH 0.001 inch MM_LOMETRIC 0.1 mm MM_HIMETRIC 0.01 mm MM_TWIPS 1/1440 inch MM_TEXT 1pixel,36,MM_TEXT映射方式,逻辑坐标和设备坐标1:1 坐标X向右增加,坐标Y向下增加 通过调用CDC的SetWindowOrg,SetViewportOrg改变原点CMyView:OnDraw(CDC* pDC)pDC-SetMapMode(MM_TEXT);pDC-SetWindowOrg(CPoint(100,100);/将逻辑坐标(100,100)设置为窗口原点 ,37,自定义映射方式一: 固定缩放的映射方式,向右X增加,向下Y减少,38,自定义映射方式二: 缩放可变的映射方式,可以改变缩放因子和原点 MM_ISOTROPIC和MM_ANISOTROPIC MM_ISOTROPIC纵横比始终是1;1 MM_ANISOTROPIC可以分别改变X和Y缩放因子,

      《面向对象编程技术2》由会员zw****58分享,可在线阅读,更多相关《面向对象编程技术2》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
     
    收藏店铺
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.