VC++高级编程期末复习_第1页
VC++高级编程期末复习_第2页
VC++高级编程期末复习_第3页
VC++高级编程期末复习_第4页
VC++高级编程期末复习_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、VC高级编程复习第一章 Visual C+集成开发环境lMFC 、MSDN、IDEl项目和项目工区:.dsp .dsw .cpp .h .clwl工作区窗口 : 类视图(ClassView)、 资源视图(ResourceView)、文件视图(FileView)第五章 创建应用程序框架l 应用程序向导创建应用程序步骤及可程序类型?文档类、视图类、框架窗口类、应用程序类的各自功能?各资源标识符前缀的含义:ID_、IDR_ 、IDD_ 、IDC_等? AppWizard生成的文件类型后缀文件类型说 明dsw工作区文件将项目详细情况组合到其中dsp项目文件存储项目的详细说明hC+头文件存储类及其成员的

2、声明代码cppC+源文件存储类成员函数的实现代码rc资源脚本文件存储菜单、工具栏、对话框资源rc2资源文件用于将资源包含到项目中ico图标文件存储应用程序图标bmp位图文件存储各种位图clw类向导文件存储类向导使用的类信息ncb没有编译的浏览文件保留类视图和类向导使用的详细情况opt可选项文件存储自定义的工作区的显示情况l MFC中资源标识符前缀标识符前缀说 明IDR_主菜单、工具栏、图标和快捷键表资源IDD_对话框资源IDC_各种控件和光标IDS_字符串资源IDP_信息对话框的字符串ID_菜单命令项应用程序类的继承关系示意图 类的命名规则class NameC+projectName+cla

3、ssType 文档与视图的关系:一个文档能拥有几个视图,一个视图能拥有几个文档?描述了对应于每一种类型文档的视图和窗口的类型,由其来确立文档、视图、框架和各种资源之间的固定关系。文档文档/视图的相互作用函数视图的相互作用函数(1)视图类的)视图类的GetDocument()函数:函数作用函数:函数作用(2)文档类的)文档类的UpdateAllViews()函数:函数作用函数:函数作用(3)视图类的)视图类的OnUpdate()函数:函数作用函数:函数作用第六章 文档和视图l 菜单栏设计:菜单类菜单栏设计:菜单类CMenu 命令更新: 菜单项状态的维护是依赖CN_UPDATE_COMMAND_U

4、I消息l 工具栏设计:CToolBar类l 状态栏设计:CStatusBar类 indicators数组l classWizard 类向导功能l鼠标消息处理:主要的鼠标消息:WM_MOUSEMOVE:鼠标移动:鼠标移动WM_LBUTTONDOWN:左键按下:左键按下WM_LBUTTONUP:左键弹起:左键弹起WM_LBUTTONDBLCLK:双击左键:双击左键WM_RBUTTONDOWN:右键按下:右键按下WM_RBUTTONUP:右键弹起:右键弹起WM_RBUTTONDBLCLK:双击右键:双击右键l 8. 序列化:序列化: 概念:对象可以将其当前状态(由其成员变量的值表对象可以将其当前状态

5、(由其成员变量的值表示)写入永久性存储体(通常是指磁盘)中,以后可示)写入永久性存储体(通常是指磁盘)中,以后可以从永久性存储体中读取(载入)对象的状态,从而以从永久性存储体中读取(载入)对象的状态,从而重建对象重建对象。类的对象自己应该具备将状态值写入磁盘。类的对象自己应该具备将状态值写入磁盘或从磁盘中读出的方法(即成员函数),这种对象的或从磁盘中读出的方法(即成员函数),这种对象的保存和恢复的过程称为保存和恢复的过程称为序列化序列化。 MFC应用程序文档的序列化方法:Serialize() 自定义类的序列化自定义类的序列化:l 类必须直接或间接地从类必须直接或间接地从CObject类派生而

6、来;类派生而来;l 类必须定义一个不带参数的类必须定义一个不带参数的构造函数;构造函数;l 在类的头文件中使用在类的头文件中使用DECLARE_SERIAL宏,在类的实现文宏,在类的实现文 件中使用件中使用IMPLEMENT_SERIAL宏;宏;l 在自定义类中重载序列化成员函数在自定义类中重载序列化成员函数Serialize()。 l 对话框类:对话框类:CDialog 由于对话框是一个特殊的窗口,所以该类是从CWnd类中派生出来的。l 对话框有两种类型:模态对话框和非模态对话框。l 模态对话框在应用程序能够继续执行之前必须被关闭掉。即当我们显示一个模态对话框时应用程序就会暂停,直到我们关闭

7、对话框我们才能继续执行程序中的其他任务。l 非模态对话框允许我们在显示对话框时转而执行程序的其他任务而不用关闭对话框。第七章对话框和标准控件l 模态对话框的创建CDialog:DoModal ()()例如弹出模态对话框: CMyDialog dialog; dialog.DoModal();l 非模态对话框的创建 CDialog:Create ()CWnd:ShowWindow()提示信息对话框提示信息对话框int AfxMessageBox( )int MessageBox( )CWnd:MessageBox( ) 对话框的组成l 对话框模板 对话框模板定义了对话框的特性(比如大小、位置和风

8、格)以及对话框中每个控件的类型和位置。l 对话框类 从CDialog类派生的对话框类提供编程接口来管理与对话框模板相关联的对话框。使用对话框(掌握其编程方法)使用对话框(掌握其编程方法)创建和使用对话框的主要步骤创建和使用对话框的主要步骤创建对话框模板资源和相关控件;用类向导创建对话框类和与控件相关联的成员变量和消息处理函数;设计程序访问接口来显示对话框并获取与控件相关联的程序数据。l对话框控件访问几种方式 GetDlgItem()-Get(Set)WindowText() GetDlgItemText()/SetDlgItemText() 将控件和变量相关联 将控件和控件变量相关联对话框DD

9、X/DDV机制 BOOL UpdateData( BOOL bSaveAndValidate = TRUE ); 当调用UpdateData(TRUE)时,MFC通过调用DDX函数将数据从控件传递到关联的成员变量;当调用UpdateData(FALSE)时,MFC通过调用DDX函数将数据从成员变量传递到关联的的控件。利用UpdateData()函数实现了在刷新后重新获取成员变量。标准控件标准控件 标准控件:静态控件、编辑框、按钮、列表框、组合框和滚动条等。公共控件:滑块、进度条、列表视控件、树视控件和标签控件等 MFC以类的形式对标准控件和公共控件进行了封装,这些类大部分是从CWnd类直接派生

10、而来。静态控件静态控件静态控件用于显示提示字符串或图形信息。包括静态文本(Static Text)、图片控件(Picture Control)和组框(Group Control)三种类型。管理静态文本控件和图片控件的MFC类是CStatic类管理组框的MFC类是CButton类。 编辑框编辑框例:例:通过“编辑”菜单中的“输入半径(I)”命令打开 “输入半径”对话框,并根据输入的半径画一个圆。按钮按钮l 按钮按钮(Button)包括按键按钮、单选按钮、复选框和组按键按钮、单选按钮、复选框和组框等框等4种类型种类型。l 封装按钮控件的MFC类都是CButton类。按钮按钮例例 编写一个SDI应用

11、程序Password,程序启动后首先弹出一个如图所示的用户身份确认对话框,当用户键入正确的口令后才能进入程序的主界面。 列表框列表框CListBox类的成员函数:成员函数:l GetCount获取列表框中字符串的数目l GetItemDataPtr获取一个指向列表框项的指针l GetSel获取一列表框项的选择状态l SetColumnWidth设置一多列列表框的宽度l GetCurSel获取列表框中当前所选串的索引(从零开始获取列表框中当前所选串的索引(从零开始)l SetCurSel选择一列表框串选择一列表框串l AddString在列表框中增加一个列表项在列表框中增加一个列表项l Dele

12、teString 从列表框中删除指定的列表项从列表框中删除指定的列表项l InsertString在列表框中指定位置处插入一个列表项在列表框中指定位置处插入一个列表项l ResetContent 清除列表框中所有列表项清除列表框中所有列表项l FindString在列表框中查找一个前缀匹配的列表项在列表框中查找一个前缀匹配的列表项l FindStringExact 在列表框中查找完全匹配的列表项在列表框中查找完全匹配的列表项l SelectString查找并选择单列表框中的一个列表框串查找并选择单列表框中的一个列表框串组合框组合框 简单组合框是一个列表框和编辑框的组合,下拉组合框多加一个下拉按

13、钮,下拉列表框与前类相似,只是无法使用编辑框。ComboBox的风格属性的风格属性:在各控件原属性基础上,属性控制页中新增了一个“Data”标签页,用于接受列表项的初始化(用Ctrl+Enter换行)。第八章 mfc原理l 1.Windows应用程序特点: Windows应用程序是按照“事件事件消息消息处理处理”非顺序的机制运行。 Windows是一个基于事件的消息驱动系统。l所谓消息消息就是用于描述某个事件发生的信息,而事事件件是对于Windows的某种操作。l消息驱动消息驱动是Windows应用程序的核心,所有的外部响应(如键盘、鼠标和计时器等)都被Windows先拦截,转换成消息后再发送

14、到应用程序中的目标对象,应用程序根据消息的具体内容进行处理。lWindows为每一个应用程序都维护一个或多个消息消息队列队列,发送到每个程序窗口的消息都排成一个队列。 事件和事件和消息消息 Windows消息消息分为三种类型:分为三种类型:l标 准标 准 W i n d o w s 消 息消 息 : 以 W M _ 前 缀 ( 但 不 包 括WM_COMMAND)开始的消息,包括鼠标消息、键盘消息和窗口消息等。l控件通知(控件通知(Control Notification)消息消息:对控件操作引起 的 消 息 , 是 控 件 和 子 窗 口 向 其 父 窗 口 发 出 的WM_COMMAND通

15、知消息。l命令(命令(Command)消息消息:由菜单项、工具栏按钮、快捷键等用户界面对象发出的WM_COMMAND消息。句柄:在句柄:在Windows中,用中,用句柄句柄标识应用程序中标识应用程序中不同的对象和同类对象中不同的实例,如一个不同的对象和同类对象中不同的实例,如一个具体的窗口、按钮、输出设备、画笔和文件等具体的窗口、按钮、输出设备、画笔和文件等WinMain()函数为()函数为Windows应用程序的入口应用程序的入口点函数。点函数。MFC 类库结构类库结构CObjectCCmdTargetCWnd应用类结构窗口支持异常类文件服务类文档类框架窗口类控制条类属性页表类对话框类视图类

16、控件类图形设备环境类控制支持类Windows套接字类图形对象类菜单类ODBC支持类DAO支持类同步类其它类:其它类:Internet支持类自动化类型运行时刻对象支持简单值类型结构其它支持类集合模板类用于同步的类数组类列表类映射类Internet类MFC框架的基本类l 消息映射类消息映射类CCmdTarget 该类是CObject的子类,是MFC类库中所有具有消息映射属性的基类,消息映射规定了当对象接到命令消息时,应调用哪一个函数对该消息进行处理。命令消息是来自菜单项、命令按钮和加速键的信息,由CCmdTarget派生出的主框架类包括CView、CWinApp、CDocument、CWnd和Cf

17、rameWnd都可处理命令消息。MFC框架的基本类lCWinApp 应用程序类 负责初始化和运行应用程序 程序开始运行后创建的第一个对象,并且是程序结束前最后一个清除的对象 负责创建其他对象,包括窗口、视图和文档 通常应用程序类都是CWinApp的子类,默认命名规则是CXXXApp,其中XXX为应用程序名称MFC框架的基本类lCFrameWnd 应用程序框架窗口类 负责显示交互界面,包括菜单和工具栏等MFC框架的基本类lCDocument 应用程序文档类 负责加载和维护文档 默认命名规则CXXXDoc,XXX为应用程序名lCView 应用程序视图类 一个文档可以对应几个不同的视图(对应不同的显

18、示方式) 默认命名规则CXXXView,XXX为应用程序名第九章第九章 图形处理图形处理l GDI:Windows提供了一个称为图形设备接口GDI(Graphics Device Interface)的抽象接口,用户通过调用GDI函数与设备打交道,GDI通过不同设备提供的驱动程序将绘图语句转换为对应的绘图指令,避免了直接对硬件进行操作,从而实现所谓的设备无关性。设备环境设备环境l为了实现设备无关性,应用程序的输出不直接面向显示器等物理设备,而是面向一个称之为设备环境DC(Device Context)的虚拟逻辑设备。lMFC设备环境类:设备环境类: CDC、CPaintDC 、CClientD

19、C、CWindowDC、 CMetaFileDC等。lCDC类既作为其它MFC设备环境类的基类,又可以作为一个一般的设备环境类使用。 CDC *dc=GetDC(); dc-TextOut(0, 0,文本); ReleaseDC(dc);lCPaintDC类是OnPaint()函数使用的设备环境类,它代表一个窗口的绘图画面。如果添加WM_PAINT消息处理函数OnPaint(),就需要使用CPaintDC类定义设备环境对象。 CPaintDC dc(this); lCClientDC类代表了客户区设备环境。当在客户区实时绘图时,需要利用CClientDC类定义一个客户区设备环境。 CClien

20、tDC dc(this); dc.MoveTo(point1); dc.LineTo(point2);lCWindowDC类代表了整个程序窗口设备环境,可以在整个窗口区域绘图。 lCMetaFileDC类用于创建一个Windows图元文件设备环境MFC设备环境类:设备环境类: 颜色颜色lWindows用COLORREF类型的数据存放颜色,它是一个32位整数。lCOLORREF类型数据的低位字节存放红色强度值,第2个字节存放绿色强度值,第3个字节存放蓝色强度值,高位字节为0,每一种颜色分量的取值范围为0到255。 使用画笔(掌握)使用画笔(掌握)使用自定义的画笔:创建一个指定风格的画笔,创建的画笔选入设备环境,在使用该画笔绘图结束后需要释放该画笔。 l创建画笔创建画笔方法1:CPen pen(PS_DASH,1,RGB(255,0,0);方法2:CPen pen; pen.CreatePen(PS_DASH,1,RGB(255,0,0);(2) 选用画笔选用画笔CPen *pOldPe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论