《Visual C++程序设计》-王永国-电子教案 第7章

上传人:E**** 文档编号:89409356 上传时间:2019-05-24 格式:PPT 页数:59 大小:2.70MB
返回 下载 相关 举报
《Visual C++程序设计》-王永国-电子教案 第7章_第1页
第1页 / 共59页
《Visual C++程序设计》-王永国-电子教案 第7章_第2页
第2页 / 共59页
《Visual C++程序设计》-王永国-电子教案 第7章_第3页
第3页 / 共59页
《Visual C++程序设计》-王永国-电子教案 第7章_第4页
第4页 / 共59页
《Visual C++程序设计》-王永国-电子教案 第7章_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《《Visual C++程序设计》-王永国-电子教案 第7章》由会员分享,可在线阅读,更多相关《《Visual C++程序设计》-王永国-电子教案 第7章(59页珍藏版)》请在金锄头文库上搜索。

1、第7章 Visual C+可视化编程基础,7.1 Windows程序设计概述 7.2 API及应用程序基本框架 7.3 MFC及应用程序框架 7.4 对话框与常用控件 7.5 菜单、工具栏与状态栏设计 7.6 文档/视图结构应用程序 7.7 程序举例,7.1.1基于Visual C+的Windows应用程序设计方法,7.1 Windows程序设计概述,用Visual C+编写Windows应用程序主要有两种方法: 1Application Programming InterfaceAPI API是Windows系统和Windows应用程序间的标准程序接口,应用程序可以通过此接口访问系统。凡是在

2、Windows工作环境下执行的应用程序都可以通过调用API函数来实现各种功能的操作。在Windows程序设计的初期,程序员所能做使用的编程工具就只有使用API函数,通过API函数的调用组合,就可以搭建出各种界面丰富、功能灵活的应用程序。 2Microsoft Foundation ClassMFC MFC是Visual C+的核心,是 Microsoft公司提供的用来编写Windows应用程序的C+类库, 集成了大量已经预先定义好的类,大约有200多个,用户可以根据编程的需要调用相应的类或自定义有关的类。这些类可以分成两种:一是CObject类的派生类;二是非CObject派生类,如表示点的C

3、Point类,表示矩形的CRect类等。,7.1.2 Windows程序设计的基本概念,Windows应用程序的特点: 具有标准的图形用户界面。 具有与硬件无关的特性。 采用“消息传递,事件驱动”的运行机制。,1窗口与对象 窗口是应用程序与用户之间交互的接口环境。用户可以通过窗口输入数据,控制应用程序的运行;应用程序可以通过窗口显示数据和运行状态。 对象是指Windows的规范部件,包括各种窗口、菜单、按钮、对话框以及程序模块等。 2常用Windows数据类型 Windows应用程序的源程序中包含种类繁多的数据类型,其中windows.h是用户调用系统功能的关键,文件中定义了Windows系统

4、使用的数据类型。,3句柄 句柄是指系统创建对象后返回的用来代表该对象的一个唯一的4字节长整数值,是整个Windows编程的基础,用于标识应用程序中不同的对象和同类对象中不同的实例。例如,一个窗口、按钮、图标、滚动条、输出设备、控件或者文件等。应用程序通过句柄能够访问相应的对象信息,它代表对对象的引用。 4事件驱动 Windows应用程序以消息为基础,以事件驱动之。Windows应用程序启动之后将进入一个消息循环,等待系统或应用程序的消息,消息的产生是因为事件发生的结果,Windows程序设计主要围绕编写事件或消息的响应函数上。 5消息及其在Windows编程中的应用 Windows应用程序的运

5、行是依靠事件来驱动,利用一个while循环实现不断等待,如果有事件发生,操作系统会以消息的形式传递给应用程序,应用程序会捕获相应的消息,然后通过调用相应的函数响应消息。,7.1.3 Windows应用程序中的常见消息,消息在Windows程序设计中是很关键的因素,在API程序设计方法中要求熟练记忆常见消息,但是在MFC程序设计方法中只要求了解这些消息的相关含义即可。 1鼠标消息 2键盘消息 3关闭窗口消息 4退出程序消息 5重画消息,7.2 API及应用程序基本框架,7.2.1 Windows API应用程序实例,共有上千个标准的API函数,调用方法与调用C语言库函数类似 示例: #inclu

6、de “windows.h“ int APIENTRY WinMain(HINSTANCE hInstance ,HINSTANCE hPrevInstance ,LPSTR lpCmdLine ,int nCmdShow) MessageBox(NULL,“简单的Windows应用程序!“,“API函数示例“,MB_OK); return 0; ,注意:不是典型的Windows应用程序,典型WinMain具有固定结构,完成三个任务: 注册窗口类、创建并初始化窗口、创建消息循环,7.2.2 Windows API应用程序结构分析,Windows应用程序具有相对固定的基本结构,其中由入口函数Wi

7、nMain和窗口函数构成基本框架,并包含各种数据类型、数据结构与函数等。 1WinMain函数 WinMain函数是所有Windows应用程序的入口,类似于C语言中的main函数,其功能是完成一系列的定义和初始化工作,并产生消息循环。 WinMain函数有三个基本的组成部分:函数说明、初始化和消息循环。 2窗口函数 窗口函数是应用程序处理接收到的消息的函数,其中包含了应用程序对各种可能接收到的消息的处理过程。,7.3 MFC及应用程序框架,7.3.1 MFC概述 微软基础类库(MFC)是微软为Windows程序员提供的一个面向对象的Windows编程接口,它封装了大部分Windows API函

8、数,大大简化了Windows编程工作。Microsoft公司的MFC具有以下特点: 1完全支持所有的Windows函数、控制、消息、GDI(图形设备接口)基本图形函数、菜单以及对话框。 2使用与传统的Windows API同样的命名规则,因此,一个类所能完成的工作可直接从名字得知。 3不使用容易产生错误的switch/case语句。 4通过发送有关对象信息到文件的能力,来提供更好的判断支持。也可以确认成员变量。 5代码少,速度快,容错处理能力强。 6在运行时确定数据对象的设计。,7.3.2 应用程序框架 在Visual C+中,可以创建以下3类典型的Windows 应用程序,它们都是通过MFC

9、 AppWizard(exe)(以下简称 AppWizard)向导创建的: (1)基于对话框的应用程序:这类程序适合于文档较少而交互操作较多的应用场合,如Windows自带的计算器程序。 (2)单文档界面(SDI)应用程序:这类程序一次只能打开一个文档,如Windows自带的记事本程序。 (3)多文档界面(MDI)应用程序:这类程序可以同时打开多个文档并进行处理,处理的过程中很容易地进行切换,如Microsoft Word。,7.4 对话框与常用控件,对话框是Windows应用程序中最重要的用户界面元素之一,是与用户交互的重要手段。在Visual C+中,对话框既可以单独组成一个简单的应用程序

10、,又可以成为文档/视图结构程序的资源。 7.4.1创建对话框程序的步骤 1建立基于对话框的MFC应用程序框架 2放置控件,设置属性,完成对话框窗口界面设计 3为控件连接变量,即为控件命名。 4添加并且编写消息处理函数。 5编译、链接并运行应用程序,由于对话框的代码是以类为模块来设计的,使用时需要在程序中加入该类的头文件,并定义一个类对象,然后就可以直接使用该类的相关成员。使用的步骤如下: 1利用项目工作区ClassView打开相应的.cpp文件,在该源文件的前面加上对话框类的头文件。 假设我们为对话框定义的类名为CMyDlg,则需在源文件的前面加上:#include “MyDlg.h” /注意

11、头文件前比类名少个大写的C 2在需要调用的位置添加下列代码: CMyDlg dlg; /定义对话框对象 dlg.DoModal(); /显示对话框,7.4.2对话框的调用,为了方便用户的程序开发,Visual C+提供了一些通用对话框和消息对话框供用户使用。 1通用对话框 Windows提供了一组标准用户界面的对话框,它们都有相应的MFC库中的类来支持。用来操作这些通用对话框的类就是CCommonDialog类,它从Cdialog类中派生,用户可以与使用其他对话框一样使用通用对话框。 2消息对话框 消息对话框是最简单的一种对话框,它只是用于显示信息。在Visual C+6.0的MFC类库中就提

12、供相应的函数实现这样的功能,使用时,只要在用户程序任何地方调用它们即可。它们的函数原型如下:,7.4.3通用对话框与消息对话框,int AfxMessageBox(LPCTSTR lpszText,UINT nType=MB_OK,UINT nIDHelp=0); int MessageBox(LPCTSTR lpszText, LPCTSTR lpszCaption=NULL,UINT nType=MB_OK); 这两个函数都是用于创建和显示消息对话框的,只不过AfxMessageBox是全程函数,可用在任何地方。而MessageBox只能用于控件、对话框、窗口等一些窗口类中。,例如: in

13、t n=MessageBox(“输入成绩?“,“系统提示“, MB_YESNO| MB_ICONQUESTION); if (n=IDYES) ,1控件添加的方法 2控件的选取 3控件的移动、复制与删除 4设定控件的Tab键次序 5控件的布局 6常用控件的控件通知消息,7.4.4 控件基本操作,7.4.5 CString 类,对字符串的存取及有关操作,还可通过标准C+里的字符串类string(定义在string.h头文件中)和MFC中的CString类(定义在afx.h头文件中)。,string是一种用户自定义的数据类型,它由C+标准库来支持,而不是C+语言本身的一部分。在使用string数据

14、类型之前,需要在程序中包含头文件string并声明其所在的名字空间std,如: #include using namespace std; 然后在程序中即可定义string类型的变量。如: string name=“张三“; 下面主要介绍MFC中CString类的使用。,当要使用MFC中的CString 类时,首先必须选择“工程设置”命令,在“Microsoft Foundation Class”选择除“Not Using MFC”以外的项目。然后源程序的头文件加上:#include “afx.h“,形式: CString 对象名; CString 对象名=“字符串常量“; CString 对

15、象名(“字符串常量“); CString 对象名(字符,int n); /重复产生n个相同的字符,例如: CString s1=“C+程序设计“; CString s(d,5);couts; /s获得字符串”ddddd”,1. 定义CString 类对象,CString 类的特色之一是可将一些常用运算符直接作用用于其对象。假设已有如下定义的 CString 对象:CString st1(“ASDFG“),st2,st3(“DD“);,2. 基本运算,形式: 函数值类型 CString对象.成员函数名(参数列表) (1)取子串 形式: CString Mid(int nFirst,int nCo

16、unt) /取字符串中nFirst位置开始的nCount个字符 CString Left(int nCount) /取字符串的左边nCount个字符 CString Right(int nCount) /取字符串的右边nCount个字符,有定义:CString s(“12345“ ); 则:s.Mid(2,2)的值为34 s.Left(3)的值为123,3. 成员函数,(2)查看字符串信息,int Find(TCHAR ch); /返回指定字符在串中的位置 int Find(LPCTSTR lpszSub); /返回指定子串在串中的位置 int GetLength(); /返回字符串的字符数,(3)字符串修改,void SetAt(int nIndex,TCHAR ch) /用字符替换指定位置上的字符 int Insert(int nIndex, TCHAR ch)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号