书签 分享 收藏 举报 版权申诉 / 62
上传文档赚钱

类型第2章C面向对象编程课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:5067070
  • 上传时间:2023-02-07
  • 格式:PPT
  • 页数:62
  • 大小:592KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第2章C面向对象编程课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    面向 对象 编程 课件
    资源描述:

    1、 文档与视图结构的工作原理 文档的读写操作机制 菜单编程 工具栏编程 状态栏编程 文档与视图文档与视图结构是MFC应用程序最基本的程序结构,适用于大多数Windows应用程序。文档和视图完成了程序的大部分功能,它们是MFC应用程序的核心。文档与视图结构是MFC的基石,掌握文档与视图结构对于利用MFC编程有着至关重要的意义。本章对文档与视图结构进行更深入的讨论。信息管理是计算机的一个主要应用,而信息是用数据表示的,因此数据的处理是一般软件都要完成的一项主要工作。采用传统的编程方法,数据处理是一项复杂的任务,并且每一个程序员都可能有不同的处理方法。为了统一和简化数据处理方法,Microsoft公司

    2、在MFC中提出了文档文档/视图视图结构的概念,其产品Word就是典型的文档/视图结构应用程序。5.1 文档与视图结构文档与视图结构 标题栏 主菜单 工具栏 客户区 状态栏 不同程序的相同菜单项和工具栏按钮表示相同的操作。5.1.1 文档与视图结构文档与视图结构概述概述Windows应用程序界面特点:分为数据的管理和显示 文档文档用于管理和维护数据 视图视图用来显示和编辑数据 MFC通过其文档类和视图类提供了大量有关数据处理的方法。MFC文档文档/视图结构视图结构数据处理数据处理工作分工:工作分工:文档文档的概念在MFC应用程序中的适用范围很广,一般说来,文档文档是能够被逻辑地组合的一系列数据,

    3、包括文本、图形、图象和表格数据。一个文档文档代表了用户存储或打开的一个文件单位。文档的主要作用是把对数据的处理从对用户界面的处理中分离出来,集中处理数据,同时提供了一个与其它类交互的接口。什么是文档?什么是文档?视图视图是文档文档在屏幕上的一个映像,它就像一个观景器,用户通过视图看到文档,也是通过视图来改变文档,视图充当了文档与用户之间的媒介物。应用程序通过视图视图向用户显示文档中的数据,并把用户的输入解释为对文档的操作。一个视图视图总是与一个文档对象相关联,用户通过与文档相关联的视图与文档进行交互。当用户打开一个文档时,应用程序就会创建一个与之相关联的视图。什么是视图?什么是视图?视图视图负

    4、责显示和编辑文档数据,但不负责存储。用户对数据的编辑需要依靠窗口上的鼠标与键盘操作才得以完成,这些消息都是由视图类接收后进行处理或通知文档类,如收到窗口刷新消息时调用视图类的成员函数OnDraw()显示文档内容。视图视图还可在打印机上输出。文档文档负责数据的读写操作,数据通常被保存在文档类的成员变量中,文档类通过一个称为序列化的成员函数将成员变量的数据保存到磁盘文件中。MFC应用程序为数据的序列化提供了默认支持。视图和文档的功能:视图和文档的功能:文档、视图、框架窗口之间的关系文档、视图、框架窗口之间的关系一个视图视图是一个没有边框的窗口,它位于主框架窗口中的客户区。视图是文档文档对外显示的窗

    5、口,但它并不能完全独立,它必须依存在一个框架窗口框架窗口内。一个视图只能拥有一个文档,但一个文档可以同时拥有多个视图。视图是文档在屏幕上的一个映像,它就像一个观景器文档文档/视图结构的优点:视图结构的优点:把数据处理类从用户界面处理类中分离出来,使得每一个类都能集中地执行一项工作。把Windows程序通常要做的工作分成若干定义好的类,这样有助于应用程序的模块化,程序也易于扩展,编程时只需修改所涉及的类。虽然文档/视图结构牵涉到许多类,其中的也关系比较复杂,但MFC AppWizard向导建立的MFC应用程序框架已经把程序的主要结构完成了,模块间的消息传递以及各函数的功能都已确定。MFC应用程序

    6、框架起到了穿针引线的作用,按照消息处理函数功能的不同,将不同消息的响应分别分布在文档类和视图类中。文档/视图结构并没有完全要求所有数据都属于文档类,视图类也可以有自己的数据。如果在视图类中不定义任何数据,在需要时都从文档类中获取,这样做会影响程序的效率。例如,在文本编辑程序中,往往在视图中缓存部分数据,这样可以避免对文档的频繁访问,提高运行效率。在视图类中定义数据在视图类中定义数据 包含多个类的MFC文档/视图结构应用程序要管理这些类中的数据,除了考虑在程序的哪一部分拥有数据和在哪一部分显示数据,一个主要的问题是文档数据更改后如何保持视图显示的同步,即文档与视图如何进行交互。在文档、视图和应用

    7、程序框架之间包含了一系列复杂的相互作用过程,文档与视图的交互是通过类的公有成员变量和成员函数实现的。5.1.2 文档与视图之间的相互作用文档与视图之间的相互作用1视图类的成员函数GetDocument()一个视图对象只有一个与之相关联的文档对象。在MFC应用程序中,视图对象通过调用成员函数函数GetDocument()得到当前文档。GetDocument()是视图类的成员函数,调用它可以返回与视图相关联的文档对象的指针,利用这个指针可以访问文档类及其派生类的公有成员。当利用MFC AppWizard向导创建一个SDI单文档应用程序Mysdi时,生成了视图类的一个派生类,并在派生类中定义了函数G

    8、etDocument()。文档和视图类常用的成员函数文档和视图类常用的成员函数 一个文档对象可以有多个与之相关联的视图对象,当一个文档的数据通过某个视图被修改后,与它关联的每一个视图都必须反映出这些修改。因此,视图在需要时必须进行重绘,即当文档数据发生改变时,必须通知到所有相关联的视图对象,以便更新所显示的数据。更新与该文档有关的所有视图的方法是调用成员函数CDocument:UpdateAllViews()。2CDocument类的成员函数UpdateAllViews()5.2.2 添加菜单命令处理函数添加菜单命令处理函数 菜单实际上是一系列命令的列表,当一个菜单项被选中后,一个含有该菜单项

    9、ID标识的WM_COMMAND命令消息将发送到应用程序窗口,应用程序将该消息转换为一个函数(命令消息处理函数)调用。命令消息来自于用户界面对象,是由菜单项、工具栏按钮和快捷键等程序界面元素发送的WM_COMMAND消息。在MFC应用程序中,许多类都能接收菜单被选中而引发的消息。总的来说,从类CCmdTarget派生出来的类都可以加入应用程序的消息循环。应该将菜单命令映射到哪个类中,需要由该命令的功能决定。如果一个命令同视图的显示有关,就应该将其映射到视图类;如果同文档的读写有关,就映射到文档类中;如果命令完成通用功能,一般映射到窗口框架类。有时无法对功能进行准确分类,则可以将菜单命令映射到任意

    10、一个类,看看是否能够完成指定的功能。将菜单命令映射到哪个类?将菜单命令映射到哪个类?Windows是基于事件驱动、消息传递的操作系统。用户所有的输入都是以事件或消息的形式传递给应用程序的,鼠标也不例外。鼠标驱动程序将鼠标硬件信号转换成Windows可以识别的信息,Windows根据这些信息构造鼠标消息,并将它们发送到应用程序的消息队列中。5.3 鼠标消息处理鼠标消息处理鼠标构成:左键、右键(中键和滚动滑轮)鼠标操作:单击、双击、释放和移动 主要鼠标消息主要鼠标消息:WM_MOUSEMOVE:移动 WM_LBUTTONDOWN:按下左键 WM_LBUTTONUP:释放左键 WM_RBUTTOND

    11、OWN:按下右键 WM_RBUTTONUP:释放右键 WM_LBUTTONDBLCLK:双击左键 5.3.1 鼠标消息鼠标消息 鼠标消息分为两类:鼠标消息分为两类:客户区鼠标消息 非客户区鼠标消息:WM_NCLBUTTONDOWN:按下鼠标左键消 WM_NCRBUTTONDOWN:按下鼠标右键.非客户区鼠标消息由Windows操作系统处理,应用程序一般不需要处理。客户区鼠标消息发送到应用程序后,可以由应用程序自己处理。通过消息结构中的消息参数wParam来区分客户区鼠标消息和非客户区鼠标消息。利用MFC ClassWizard类向导生成的鼠标消息处理函数一般都有两个参数:nFlags:类型为U

    12、INT,表示鼠标按键和 键盘上控制键的状态。point:类型为CPoint,表示鼠标当前所 在位置坐标。鼠标消息处理函数参数鼠标消息处理函数参数第第 二十九二十九 讲讲主讲教师:隋振学时:主讲教师:隋振学时:32 使用鼠标的一个典型例子就是绘图程序,鼠标被用作画笔,绘图过程中要进行不同鼠标消息的处理,如按下鼠标、释放鼠标和移动鼠标等。当用户按下鼠标左键时必须记录下当前鼠标的位置,当用户移动鼠标时,如果鼠标左键被按住,则从上一个鼠标位置到当前位置画一段直线,并保存当前鼠标的位置,供下一次画线用。当用户弹起鼠标左键时释放鼠标。5.3.1 鼠标消息处理举例:鼠标消息处理举例:绘图程序绘图程序 例例

    13、编写一个绘图程序,程序运行后,当用户在客户区窗口按下鼠标左键并移动时,根据鼠标移动的轨迹绘制出指定的线段。类似于画图软件 1、设计CLine类2、在文档中添加Cline数组和表示线数量的变量3、在构造函数中初始化4、在视类中添加Cline型变量,保存当前线5、添加变量BOOL型,记录左键是否按下6、添加鼠标的函数第第 三十三十 讲讲主讲教师:隋振学时:主讲教师:隋振学时:32OnLButtonDown,记线起点,和鼠标按下标记OnMouseMove,先擦原线,再画新线OnLButtonUp,记录新线到文档中7、OnDraw()8、文档中保存第第 三十一三十一 讲讲主讲教师:隋振学时:主讲教师:

    14、隋振学时:32void CMyDrawView:OnLButtonDown(UINT nFlags,CPoint point)/TODO:Add your message handler code here and/or call defaultm_bIsMouseDown=TRUE;/设置拖拽标记设置拖拽标记SetCapture();/捕捉鼠标:SetCursor(m_hCross);/设置十字光标m_Line.m_nX1=point.x;/设置新值m_Line.m_nY1=point.y;m_Line.m_nX2=point.x;/起点终点设置成同一个点m_Line.m_nY2=point

    15、.y;/相当于线长度是零CView:OnLButtonDown(nFlags,point);void CMyDrawView:OnMouseMove(UINT nFlags,CPoint point)/TODO:Add your message handler code here and/or call defaultif(m_bIsMouseDown)CClientDC ClientDC(this);ClientDC.SetROP2(R2_NOT);/按取反方式画图m_Line.Draw(&ClientDC);/先画一遍,擦除源曲线m_Line.m_nX2=point.x;/设置新值m_Li

    16、ne.m_nY2=point.y;m_Line.Draw(&ClientDC);/再画一遍CView:OnMouseMove(nFlags,point);void CMyDrawView:OnLButtonUp(UINT nFlags,CPoint point)/TODO:Add your message handler code here and/or call defaultif(m_bIsMouseDown)m_bIsMouseDown=FALSE;ReleaseCapture();/释放鼠标,还原鼠标形状m_Line.m_nX2=point.x;/设置终点m_Line.m_nY2=po

    17、int.y;CMyDrawDoc*pDoc=GetDocument();/取文档指针ASSERT_VALID(pDoc);pDoc-m_LinepDoc-m_nLineCounter=m_Line;/保存pDoc-m_nLineCounter+;Invalidate(NULL);/重画CView:OnLButtonUp(nFlags,point);1利用MFC AppWizardexe向导创建一个SDI应用程序MyDraw,为视图类CMyDrawView添加成员变量:protected:/定义有关鼠标作图的成员变量Cline m_Line;/保存当前线段保存当前线段bool m_bDraggi

    18、ng;/拖拽标记拖拽标记HCURSOR m_hCross;/光标句柄光标句柄 2在视图类CMyDrawView构造函数中设置拖拽标记和十字光标。CMyDrawView:CMyDrawView()/TODO:add construction code herem_bDragging=false;/初始化拖拽标记初始化拖拽标记/获得十字光标句柄m_hCross=AfxGetApp()-LoadStandardCursor(IDC_CROSS);3利用ClassWizard类向导为视图类添加按下鼠标左键WM_LBUTTONDOWN的消息处理函数。void CMyDrawView:OnLButtonD

    19、own(UINT nFlags,CPoint point)/TODO:Add your message .SetCapture();/捕捉鼠标捕捉鼠标:SetCursor(m_hCross);/设置十字光标设置十字光标/CView:OnLButtonDown(nFlags,point);2为类CLine定义成员变量和成员函数。class Cline:CObjectprivate:/定义成员变量,表示一条直线起点和终点的坐标定义成员变量,表示一条直线起点和终点的坐标int m_X1;int m_Y1;int m_X2;int m_Y2;public:CLine();virtual CLine()

    20、;CLine(CPoint pt1,CPoint pt2);/构造函数构造函数void DrawLine(CDC*pDC);/绘制线段绘制线段;CLine:CLine(CPoint pt1,CPoint pt2)m_X1=pt1.x;m_Y1=pt1.y;m_X2=pt2.x;m_Y2=pt2.y;void CLine:DrawLine(CDC*pDC)pDC-MoveTo(m_X1,m_Y1);pDC-LineTo(m_X2,m_Y2);在Line.cpp中编写成员函数的实现代码:为了在改变程序窗口大小或最小化窗口后重新打开窗口时保留窗口中原有的图形,必须在OnDraw()函数中重新绘制前面

    21、利用鼠标所绘制的线段。这些线段的坐标作为类CLine对象的成员变量,所有CLine对象的指针已保存在动态数组m_LineArray中。5.修改OnDraw()函数void CMyDrawView:OnDraw(CDC*pDC)CMyDrawDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);/TODO:add draw code for native data hereint nIndex=pDoc-GetNumLines();/取得线段的数量/循环画出每一段线段while(nIndex-)/数组下标从0到nIndex-1pDoc-GetLine(nIndex)

    22、-DrawLine(pDC);/类CLine的成员函数第第 三十二三十二 讲讲主讲教师:隋振学时:主讲教师:隋振学时:32 6.光标使用m_hCross=AfxGetApp()-LoadStandardCursor(IDC_CROSS);:SetCursor(m_hCross);/设置十字光标m_hCross=AfxGetApp()-LoadCursor(IDC_HAND);:SetCursor(m_hCross);涉及到数据处理的应用程序一般都要考虑文档数据的永久保存。虽然我们可以直接利用类CFile来实现文件的读写操功能,但在MFC应用程序中,序列化序列化(Serialize)使得程序员可

    23、以不直接面对一个物理文件而进行文档的读写。序列化实现了文档数据的保存和装入的幕后工作,MFC通过序列化实现应用程序的文档读写功能。5.5 文档的读写文档的读写 一个可序列化的类必须有一个称作为序列化的成员函数Serialize(),文档的序列化在文档类的成员函数Serialize()中进行。MFC AppWizard应用程序向导在生成应用程序时只创建了文档派生类序列化Serialize()函数的框架,由于不同程序的数据结构各不相同,可序列化的类应该重载Serialize()函数,使其支持对特定数据的序列化。并且,任何需要保存的变量(数据)都应该在文档派生类中声明。序列化函数序列化函数Seria

    24、lize()void CMyDoc:Serialize(CArchive&ar)if(ar.IsStoring()/TODO:add storing code here.else/TODO:add loading code here.3.MFC AppWizard向导生成的向导生成的Seralize()函数函数 函数参数ar是一个CArchive类的对象,文档数据的序列化操作通过CArchive类对象作为中介来完成。CArchive类对象由应用程序框架创建,并与用户正在使用的文件关联在一起。CArchive类包含一个类CFile指针的成员变量,当创建一个CArchive类对象时,该对象与一个类

    25、CFile或其派生类的对象联系在一起,代表一个已打开的文件。C+主要通过文件句柄来实现磁盘输入和输出,一个文件句柄与一个磁盘文件相关联。而MFC中物理文件的读写操作是由CFile类及其派生类来完成的,它们对文件句柄进行了封装。CArchive类对象为读写CFile类对象中的可序列化数据提供了一种安全的缓冲机制,它们之间形成了如下关系:Serialize()函数 CArchive类对象CFile类对象 磁盘文件 void CLine:Serialize(CArchive&ar)if(ar.IsStoring()arm_pt1m_pt1m_pt2;/读出对象的数据4现在我们实现了CLine类的序列

    26、化,但只是一条线段的序列化。前面定义了CObArray类型的变量m_LineArray,由于CObArray类自身提供了序列化函数,所以作为CObArray类的对象m_LineArray可以直接序列化。变量m_LineArray中存放的是CLine类对象的指针,自然会调用类CLine的序列化函数,完成了多个CLine类对象的序列化。void CMyDrawDoc:Serialize(CArchive&ar)if(ar.IsStoring()/TODO:add storing code herem_LineArray.Serialize(ar);/调用CObArray类的序列化函数else/TO

    27、DO:add loading code herem_LineArray.Serialize(ar);MFC为应用程序提供了多种不同的视图,除了我们平常使用最多的一般视图CView,我们还可以使用其它视图,如滚动视图CScrollView、文本编辑视图CEditView、对话框视图CFormView、列表视图CListView和树型视图CTreeView等,这些视图都是从类CView派生而来。在利用应用程序向导创建一个文档/视图结构的应用程序时,在向导的第6步我们可以为应用程序选择不同的视图。5.6 使用不同视图使用不同视图 1.滚动视图类滚动视图类CScrollView 为了实现滚动视图的,M

    28、FC提供了滚动视图类CScrollView。在使用类CScrollView时,一般情况下,我们使用默认的滚动值,且不需要程序员自己处理滚动消息。编程时可使用CScrollView类的一些常用成员函数:SetScrollSizes():用于设置整个滚动视图的大小、每一页和每一行的大小;GetTotalSize():用于获取滚动视图的大小;GetScrollPosition():用于获取当前可见视图左上 角的坐标。5.6.1 滚动视图滚动视图 利用向导创建程序时采用CScrollView作为基类 如果为用类CView作为基类的程序增加滚动功能,可直接在原来的程序基础上作相应修改:(1)手工将视图类

    29、CView改为CScrollView。(2)重载视图类虚函数OnInitialUpdate()或WM_CREATE的消息处理函数OnCreate(),根据文档大小设置滚动视图。(3)注意设备坐标与逻辑坐标的转换。如在鼠标消息处理函数中使用CClientDC客户设备环境,其坐标是客户区坐标,而在OnDraw()函数中使用的坐标是逻辑坐标。参见例例5-13。2.滚动视图程序的滚动视图程序的2种设计方法:种设计方法:5.6.2 多视图多视图 文档与视图分离使得一个文档对象可以和多个视图相关联,这样可更容易实现多视图应用程序。一般多视图应用程序都是MDI程序,但SDI程序也可以实现多视图。对于单文档应

    30、用程序一般采用拆分窗口的方式实现多视图。除了采用拆分窗口实现多视图,还可以利用子框架窗口实现多视图,例例5-14就是采用这种方式实现多视图。视图总是通过文档模板与一个框架窗口和一个文档相关联,文档模板对象是在应用程序的初始化函数InitInstance()中创建的。在利用向导创建一个MDI应用程序后,程序自动具有多视图的功能。利用类向导建立新的视图类;在函数InitInstance()中构建一个与新的视图类相关联的文档模板对象,但暂时不要加入它;在函数ExitInstance()中删除构建的文档模板对象;在 相 关 菜 单 的 命 令 处 理 函 数 中 调 用 函 数CDocTemplate

    31、:CreateNewFrame()为构键的文档 模 板 创 建 新 的 框 架 窗 口,调 用 函 数CDocTemplate:InitialUpdateFrame()更新视图。MFC实现多视图的基本方法和步骤:实现多视图的基本方法和步骤:5.7菜单 工具栏 状态栏 1 添加菜单项 2 添加菜单子项 3 设置ID和标题 4 添加响应函数 5 在工具栏中添加新图标 6 设置与菜单相同的ID 7 写状态栏提示及弹出提示5.8 软件图标 软件图标 1 大图标:资源管理器中,图标方式时显示 2 小图标:列表方式时显示 关联文件图标 3 大文件图标 4 小文件图标 在Windows中,每个文件都有一个图

    32、标图标(Icon)。应用程序图标通常会出现在程序标题栏的左上角、Windows底部的任务栏、资源管理器窗口和Windows桌面上。图标图标实质上是特殊形式的位图,但图标与位图有两个不同之处。首先,图标大小尺寸只能有三种,一种是用于标题栏和最小化时的1616图标,另外两种是用于桌面、资源管理器的3232和4848图标。其次,设计图标时可以指定像素的颜色为屏幕颜色或屏幕反转色,如图所示。这样,Windows在显示图标时,采用屏幕颜色的像素位置颜色不变,该位置图标部分看起来是透明的,而屏幕反转色部分在任何彩色背景下都能显示。学习要点 基本要素:标识符、关键字、常量、变量、运算符和表达式等 运算符和表

    33、达式 基本数据类型 指针类型和构造类型(包括数组、指针、字符串、结构和枚举等类型)三种流程控制结构:1.顺序结构顺序结构2.分支结构分支结构3.循环结构循环结构。函数定义、函数调用和函数声明函数定义、函数调用和函数声明 什么是对象什么是对象对象=数据+作用于这些数据上的操作什么是类什么是类类的定义与实现类的定义与实现什么是构造函数什么是构造函数什么是析构函数什么是析构函数 类的继承类的继承MFC是一个编程框架是一个编程框架 编程规范编程规范匈牙利表示法则 Visual C+的安装的安装 集成开发环境窗口集成开发环境窗口MFC AppWizardexe创建应用程序的类型:Single docum

    34、ent:单文档界面应用程序 Multiple documents:多文档界面应用程序 Dialog based:基于对话框的应用程序 对话框对话框是Windows应用程序中一种常用的资源,其主要功能是输出信息和接收用户的输入数据。控件控件是嵌入在对话框中或其它父窗口中的一个特殊的小窗口,它用于完成不同的输入、输出功能。对话框与控件关系密切,在每个对话框上一般都有一些控件,对话框依靠这些控件与用户进行信息的交互。本章主要介绍对话框的工作原理和编程方法,并通过实例学习一些标准控件和公共控件的使用方法。Windows提供的控件分为两类:标准控件和公共控件。标准控件:静态控件、编辑框、按钮、列表框、组

    35、合框和滚动条等。利用标准控件可满足大部分用户界面程序设计的要求。公共控件:滑块、进度条、列表视控件、树视控件和标签控件等,利用公共控件实现应用程序用户界面风格的多样性。UpdateData()的用法的用法 定时器定时器 1)SetTimer(int,1)SetTimer(int,intint,callback ,callback functiomfunctiom)参数参数1 1,定时器号,定时器号 参数参数2 2,定时间隔,单位,定时间隔,单位mSmS 参数参数3 3,回调函数,通常,回调函数,通常NULLNULL(2)(2)通过向导添加通过向导添加OnTimerOnTimer函数函数(3)(3)编辑函数编辑函数OnTimerOnTimer()()(4)KillTimer()(4)KillTimer()关闭定时器关闭定时器子对话框使用:CMyDialog myDlg;myDlg.DoModal();MFC公用对话框类公用对话框类 CColorDialog CFileDialog FindReplaceDialog CFontDialog PagesSetupDialog CPrintDialog COleDialog

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第2章C面向对象编程课件.ppt
    链接地址:https://www.163wenku.com/p-5067070.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库