版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、类是C+的精华,是进行封装和数据隐藏的工具,是C+的一种数据类型,使用类的变量则称为对象。类的成员函数的具体实现方法?第一种是在类的内部定义(内联函数)第二种是在类的外部定义类成员属性:私有、保护、公共 私有的:私有成员只能被本类的成员函数访问使用;保护的:可以被本类的,还可以被本类派生的类的成员访问;公共:成员可以被本类及以外的函数访问,是外部接口。友元函数:用friend把其他类声明为一个类的友元,允许访问类的私有部分,不是成员函数C+三大特点:封装性 继承性 多态性类的封装:数据和数据的处理封装在一起,利于隐藏继承:代码重用多态特性:同一名称,对应不同实现,执行不同代码(重载) 什么是构
2、造函数?:构造函数在建立对象时调用;特殊的成员函数,用来分配内存空间,初始化成员。构造函数名和类名相同,定义对象时编译系统自动调用构造函数完成对象的初始化。一个类可以有多个不同参数的构造函数重载。 构造函数可以有参数,也可以无参数,但不能有返回值。当不显示定义时,系统会有默认的构造函数;会把对象中的变量初始化为0;构造函数不能被显示调用,只能是定义对象时被编译器自动的调用。什么是析构函数?在销毁对象时调用波浪号和类名构成的函数是析构函数;没有参数,没有返回值,不能重载,一个类只有一个析构函数。析构函数是一种特殊的由用户定义的成员函数,当该类的对象离开了它的域,或者delete表达式被应用到该类
3、对象的一个指针上时,析构函数会自动被调用;没有虚拟构造函数,可以有虚拟析构函数;基类的析构函数是虚拟的,则派生类的析构函数也是虚拟的。1什么是事件驱动:程序设计根据事件或消息产生驱动执行处理函数。Windows程序的执行顺序取决于事件发生的顺序,程序的执行顺序是由顺序产生的消息驱动的,但是消息的产生往往并不要求有次序之分。 消息:描述事件发生的信息,程序是由消息驱动的。2什么是句柄句柄是一个4字节长的数值,用于标识应用程序中不同的对象和同类对象中不同的实例 ;应用程序通过句柄访问相应的对象信息。消息的组成: 消息号,字参数和长字参数。消息结构: MSG 点的结构:POINT 矩形结构:RECT
4、3 Windows应用程序的基本工作机制和流程?Windows应用程序组成:入口函数WinMain和窗口函数WndProc初始化窗口类注册窗口类创建窗口显示窗口绘制用户区消息循环(分配消息到窗口函数)执行窗口函数响应消息。窗口的注册、创建、消息响应LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);/窗口函数说明/*以下是入口函数的代码*/int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)省略部分代码,定义一些对象
5、及变量./*以下是初始化窗口类*/省略部分代码wcex的成员变量初始化.if (!RegisterClassEx(&wcex)/窗口类的注册如果注册失败则发出警告MessageBox(NULL,_T("窗口注册失败"),_T("窗口注册"),NULL);return 1;hWnd=CreateWindow()/*创建窗口*/if(!hWnd)/如果创建窗口失败则发出警告MessageBox(NULL,_T("创建窗口失败"),_T("创建窗口"),NULL);return 1;ShowWindow(hWnd
6、,nCmdShow);/显示窗口UpdateWindow(hWnd);/绘制用户区while(GetMessage(&msg,NULL,0,0)/消息循环TranslateMessage(&msg);DispatchMessage(&msg);return(int )msg.wParam;/程序终止时将信息返回系统/*一下是窗口函数代码*/LRESULT CALLBACK WndProc()switch(message)case WM_DESTROY:PostQuitMessage(0); break; /调用PostQuitMessage发出WM_Quit消息defa
7、ult: return DefWindowProc(hWnd,message,wParam,LParam);break;/默认采用系统消息默认处理函数return 0;第四章1什么是GDI和设备无关性?图形设备按口(GDI) GDI负责系统与用户或绘图程序之间的信息交换,并控制在输出设备上显示图形或文字, 是Windows系统的重要组成部分 。设备的无关性,就是操作系统屏蔽了硬件设备的差异,因而设备无关性能使用户编程时无需考虑特殊的硬件设置2. 获取设备环境的方法(1) 调用BeginPaint函数应用程序响应WM_PAINT消息进行图形刷新时,主要通过调用BeginPaint函数获取设备环境
8、 ,用EndPaint函数释放。2) 调用GetDC函数 如果绘图工作并非由WM_PAINT消息驱动,则调用GetDC函数获取设备环境。hdc=GetDC(hwnd); 用ReleaseDC函数释放ReleaseDC(HWND hwnd);hdc=BeginPaint(hWnd,&ptstr);/获得设备环境SelectObject(hdc,hPen);/hdc环境句柄,hpen画笔句柄/画直线的函数MoveToEx( hdc,300,500,NULL);/线的起点LineTo(hdc,300,650);/线的终点/画椭圆Arc(左上坐标),(右下坐标),(起始点坐标)(终止点坐标)/
9、画矩形Rectangle(hDC,50,70,150,130);/环境句柄,左上坐标,右下坐标第五章HFONT hF;/定义文本句柄hF= GetStockObject( );/获得系统字体句柄SelectObject(hdc,hF);/选入设备环境GetTextExtentPoint32(/获取当前字符串的宽度的API HDC hdc, LPCTSTR lpszString,/指定的字符串 int nLength, /字符串中的字符数 LPSIZE lpSize/返回字符串宽度及高度的SIZE数据结构的地址)TextOut(/文本输出函数 HDC hdc, int X, int Y, /X,
10、 Y为用户区中字符串的起始坐标 LPCTSTR lpstring, /lpstring为显示的字符串 int nCount /nCount为字符串中的字节数);第6章虚拟码是一种与设备无关的键盘编码,它的值存放在键盘消息的wParam参数中,用以标识哪一个键被按下或释放,最常用的虚拟码已经在Windows.h中定义。键盘消息包括:按键消息、字符消息鼠标消息响应中:lParam包含了鼠标位置,低位包含了光标的x的值,高位包含了光标的y值。wParam包含了指示各种虚键状态的值case WM_KEYDOWN:InvalidateRect(hWnd,NULL,1);/刷新用户区case WM_LBU
11、TTONDOWN: lButtonDownSign=true;/左键按下InvalidateRect(hWnd,NULL,1);第7章 资源描述文件中ACCELERATORS加速键 如“x” ID /表示与ctrl的组合键资源描述文件中DIALOG定义对话框MENUITEM用于定义菜单项BITMAP用于定义位图ICON 用于定义图标什么是模式对话框和非模式对话框?对话框是一个弹出式窗口,它一般用于用户输入或与用户进行交互活动的场合模式对话框不允许用户在关闭对话框之前切换到应用程序的其他窗口非模式对话框允许用户在该对话框与应用程序其他窗口之间的切换,非模式对话框从WinMain函数的消息循环中接
12、收输入第9章 Windows 标准控件在可视化编程中的应用所有的控件都是CWnd类的派生类,CButton类的成员函数GetCheck( )/返回检查框或单选按钮的选择状态SetCheck( )/设置检查框或单选按钮的选择状态GetBitmap()/获得位图的句柄SetBitmap()/指定按钮上显示的位图GetButtonStyle()/获得有关按钮控件样式的信息SetButtonStyle()/改变按钮样式GetCursor()/获得光标图像的句柄SetCursor()/指定按钮控件上的光标图像GetIcon()/获得图标句柄SetIcon()/指定一个按钮上显示的图标GetState()
13、/获得一个按钮控件的选中、选择、或聚焦状态SetState()/设置一个按钮控件的选择状态9.2 编辑框编程实例 简单计算器程序(1)建立基于对话框的工程(2)设置对话框上控件的属性(3)按钮控件添加成员变量(4)添加消息的相应处理函数void CcalcDlg:OnEnChangeEdit1()/每个编辑框控件的消息响应函数UpdateData(TRUE);switch (m_operator) case 0: m_result = m_num1 + m_num2; break;case 1: m_result = m_num1 - m_num2; break;case 2: m_resul
14、t = m_num1*m_num2; break;case 3: m_result = m_num1 / m_num2; break;UpdateData(FALSE);/将成员变量的值更新到对话框控件里void CcalcDlg:OnBnClickedButton1()/重置按钮的消息相应数值初始为0m_result = m_num1 = m_num2 = m_operator = 0;UpdateData(FALSE);第10章 在MFC中创建应用程序的资源 几个消息响应机制: COMMAND消息的响应 :是对单击菜单的响应 UPDATE_COMMAND_UI消息的响应:单击菜单后菜单状态
15、显示选中。掌握对话框资源和单文档程序的使用方法:1. 新建mfc应用程序,选择单文档2. 创建对话框资源 ,然后添加对话框资源,为对话框定义基类为CDialog的类,添加控件和相关联的变量。3. 在资源视图添加菜单,添加消息响应程序,在消息响应程序里用对话框类定义对话框对象,执行对话框的操作。4. 视图中输出要显示的内容。5. 文档串行化,保存数据到磁盘。第 11章 单文档文档的任务是对数据进行管理和维护,数据保存在文档类的成员变量中。文档类通过串行化的过程将数据保存到磁盘文件或数据库中文档类还可处理来自如菜单、工具栏按钮和加速键的WM_COMMAND消息。视图:视图可以直接或间接的访问文档类
16、中的成员变量,它从文档类中(而不是从存储介质中)将文档中的数据取出来,然后在屏幕上显示文档的数据。视图是文档的不同表现形式,一个文档可以有多个视图,但每个视图只能对应于一个确定的文档 。(文件可由不同程序打开)机制:视图通过GetDocument成员函数获得指向相关联的文档对象的指针,通过该指针调用文档类的成员函数来从文档中读取数据,视图把数据显示于计算机屏幕上。用户通过与视图的交互来查看数据并对数据进行修改,视图通过相关联的文档类的成员函数将经过修改的数据传递给文档对象,文档对象获得修改过的数据之后,对其进行必要的修改,最后保存到永久介质(如磁盘文件)中。Doc/View框架核心基本类只有五
17、个:1、CWinApp应用程序类代表主程序,CWinApp本身是不可见的,它负责维护进程的启动、终止、消息循环、命令行参数、资源管理 2 CDocument文档类 为每一个文档类型从CDocument类派生一个相应的文档类。 为文档类添加成员变量,这些变量主要用来保存文档的数据,并使其它的对象(如视图对象)可以访问这些成员变量,从而实现文档和视图的相互搭配使用。 重载Serialize成员函数,实现文档数据的串行化。 3 CView 视图类(CView)是从CWnd类下派生的 CView类中最常用的是OnDraw函数,该函数在屏幕发生变化或因为焦点的变化需要重绘时调用,没有该函数,就不可能在程
18、序的切换后保证屏幕的正确显示。4 CDocTemplate 文档模板类负责具体的关联文档、视图、框架的创建 5 CFrameWnd框架类框架窗口维护了很多幕后的工作,例如工具条、菜单、状态条的显示、更新,视图的位置和显示,其它可停靠空间的停靠和动态尺寸调整。许多默认为MFC应用程序应该具备的基本功能都是CframeWnd类在完成 。串行化:将对象写入字节流和从字节流恢复对象的操作 串行化除了可以使用文件保存对象之外,还可以通过网络、串口传输对象,因此使用字节流。消息是描述事件发生的信息(如按下鼠标或键盘),Windows应用程序利用Windows消息(Message)与应用程序及系统进行信息交换。 Sdk程序通过窗口函数设计对应消息的处理程序,当消息发生时执行对应消息的代码; Mfc程序通过消息映射机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版国际金融风险管理合同范本3篇
- 二零二五版建筑工地劳务用工及社会保障服务合同范本3篇
- 二零二五年酒店客房协议价优惠合作合同3篇
- 2024政府采购合同环境与安全监督协议3篇
- 2025年新型城镇化项目水电设施安装施工合同3篇
- 二零二五版板房租赁与租赁期满资产评估与转让合同3篇
- 二零二五年度出租车司机服务规范与客户满意度提升合同3篇
- 二零二五年透水混凝土工程验收与评估合同2篇
- 二零二五年智能交通管理系统采购合同3篇
- 二零二五版房屋代理租赁资产评估合同3篇
- 盖洛普Q12解读和实施完整版
- 2023年Web前端技术试题
- GB/T 20840.8-2007互感器第8部分:电子式电流互感器
- GB/T 14864-2013实心聚乙烯绝缘柔软射频电缆
- 品牌策划与推广-项目5-品牌推广课件
- 信息学奥赛-计算机基础知识(完整版)资料
- 发烟硫酸(CAS:8014-95-7)理化性质及危险特性表
- 数字信号处理(课件)
- 公路自然灾害防治对策课件
- 耳鸣中医临床路径
- 安徽身份证号码前6位
评论
0/150
提交评论