Visual C可视化编程基础教案.pptx
《Visual C可视化编程基础教案.pptx》由会员分享,可在线阅读,更多相关《Visual C可视化编程基础教案.pptx(59页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、会计学1Visual C可视化编程基础可视化编程基础基于Visual C+的Windows应用程序设计方法 7.1 Windows7.1 Windows程序设计概述程序设计概述程序设计概述程序设计概述 用Visual C+编写Windows应用程序主要有两种方法:1Application Programming InterfaceAPI API是Windows系统和Windows应用程序间的标准程序接口,应用程序可以通过此接口访问系统。凡是在Windows工作环境下执行的应用程序都可以通过调用API函数来实现各种功能的操作。在Windows程序设计的初期,程序员所能做使用的编程工具就只有使用A
2、PI函数,通过API函数的调用组合,就可以搭建出各种界面丰富、功能灵活的应用程序。2Microsoft Foundation ClassMFC MFC是Visual C+的核心,是 Microsoft公司提供的用来编写Windows应用程序的C+类库,集成了大量已经预先定义好的类,大约有200多个,用户可以根据编程的需要调用相应的类或自定义有关的类。这些类可以分成两种:一是CObject类的派生类;二是非CObject派生类,如表示点的CPoint类,表示矩形的CRect类等。第1页/共59页第2页/共59页程序设计的基本概念 Windows应用程序的特点:具有标准的图形用户界面。具有与硬件无
3、关的特性。采用“消息传递,事件驱动”的运行机制。1窗口与对象 窗口是应用程序与用户之间交互的接口环境。用户可以通过窗口输入数据,控制应用程序的运行;应用程序可以通过窗口显示数据和运行状态。对象是指Windows的规范部件,包括各种窗口、菜单、按钮、对话框以及程序模块等。2常用Windows数据类型 Windows应用程序的源程序中包含种类繁多的数据类型,其中windows.h是用户调用系统功能的关键,文件中定义了Windows系统使用的数据类型。第3页/共59页 3句柄 句柄是指系统创建对象后返回的用来代表该对象的一个唯一的4字节长整数值,是整个Windows编程的基础,用于标识应用程序中不同
4、的对象和同类对象中不同的实例。例如,一个窗口、按钮、图标、滚动条、输出设备、控件或者文件等。应用程序通过句柄能够访问相应的对象信息,它代表对对象的引用。4事件驱动 Windows应用程序以消息为基础,以事件驱动之。Windows应用程序启动之后将进入一个消息循环,等待系统或应用程序的消息,消息的产生是因为事件发生的结果,Windows程序设计主要围绕编写事件或消息的响应函数上。5消息及其在Windows编程中的应用 Windows应用程序的运行是依靠事件来驱动,利用一个while循环实现不断等待,如果有事件发生,操作系统会以消息的形式传递给应用程序,应用程序会捕获相应的消息,然后通过调用相应的
5、函数响应消息。第4页/共59页应用程序中的常见消息 消息在Windows程序设计中是很关键的因素,在API程序设计方法中要求熟练记忆常见消息,但是在MFC程序设计方法中只要求了解这些消息的相关含义即可。1鼠标消息 2键盘消息 3关闭窗口消息 4退出程序消息 5重画消息 第5页/共59页7.2 API7.2 API及应用程序基本框架及应用程序基本框架及应用程序基本框架及应用程序基本框架应用程序实例 共有上千个标准的API函数,调用方法与调用C语言库函数类似示例:#include windows.hint APIENTRY WinMain(HINSTANCE hInstance ,HINSTANC
6、E hPrevInstance ,LPSTR lpCmdLine ,int nCmdShow)MessageBox(NULL,简单的Windows应用程序!,API函数示例,MB_OK);return 0;第6页/共59页注意:不是典型的Windows应用程序,典型WinMain具有固定结构,完成三个任务:注册窗口类、创建并初始化窗口、创建消息循环第7页/共59页应用程序结构分析 Windows应用程序具有相对固定的基本结构,其中由入口函数WinMain和窗口函数构成基本框架,并包含各种数据类型、数据结构与函数等。1WinMain函数 WinMain函数是所有Windows应用程序的入口,类似
7、于C语言中的main函数,其功能是完成一系列的定义和初始化工作,并产生消息循环。WinMain函数有三个基本的组成部分:函数说明、初始化和消息循环。2窗口函数 窗口函数是应用程序处理接收到的消息的函数,其中包含了应用程序对各种可能接收到的消息的处理过程。第8页/共59页7.3 MFC7.3 MFC及应用程序框架及应用程序框架及应用程序框架及应用程序框架 概述 微软基础类库(MFC)是微软为Windows程序员提供的一个面向对象的Windows编程接口,它封装了大部分Windows API函数,大大简化了Windows编程工作。Microsoft公司的MFC具有以下特点:1完全支持所有的Wind
8、ows函数、控制、消息、GDI(图形设备接口)基本图形函数、菜单以及对话框。2使用与传统的Windows API同样的命名规则,因此,一个类所能完成的工作可直接从名字得知。3不使用容易产生错误的switch/case语句。4通过发送有关对象信息到文件的能力,来提供更好的判断支持。也可以确认成员变量。5代码少,速度快,容错处理能力强。6在运行时确定数据对象的设计。第9页/共59页应用程序框架在Visual C+中,可以创建以下3类典型的Windows 应用程序,它们都是通过MFC AppWizard(exe)(以下简称 AppWizard)向导创建的:(1)基于对话框的应用程序:这类程序适合于文
9、档较少而交互操作较多的应用场合,如Windows自带的计算器程序。(2)单文档界面(SDI)应用程序:这类程序一次只能打开一个文档,如Windows自带的记事本程序。(3)多文档界面(MDI)应用程序:这类程序可以同时打开多个文档并进行处理,处理的过程中很容易地进行切换,如Microsoft Word。第10页/共59页7.4 7.4 对话框与常用控件对话框与常用控件对话框与常用控件对话框与常用控件 对话框是Windows应用程序中最重要的用户界面元素之一,是与用户交互的重要手段。在Visual C+中,对话框既可以单独组成一个简单的应用程序,又可以成为文档/视图结构程序的资源。创建对话框程序
10、的步骤 1建立基于对话框的MFC应用程序框架 2放置控件,设置属性,完成对话框窗口界面设计 3为控件连接变量,即为控件命名。4添加并且编写消息处理函数。5编译、链接并运行应用程序 第11页/共59页第12页/共59页 由于对话框的代码是以类为模块来设计的,使用时需要在程序中加入该类的头文件,并定义一个类对象,然后就可以直接使用该类的相关成员。使用的步骤如下:1利用项目工作区ClassView打开相应的.cpp文件,在该源文件的前面加上对话框类的头文件。假设我们为对话框定义的类名为CMyDlg,则需在源文件的前面加上:#include“MyDlg.h”/注意头文件前比类名少个大写的C 2在需要调
11、用的位置添加下列代码:CMyDlg dlg;/定义对话框对象 dlg.DoModal();/显示对话框对话框的调用对话框的调用对话框的调用对话框的调用第13页/共59页 为了方便用户的程序开发,Visual C+提供了一些通用对话框和消息对话框供用户使用。1通用对话框 Windows提供了一组标准用户界面的对话框,它们都有相应的MFC库中的类来支持。用来操作这些通用对话框的类就是CCommonDialog类,它从Cdialog类中派生,用户可以与使用其他对话框一样使用通用对话框。2消息对话框 消息对话框是最简单的一种对话框,它只是用于显示信息。在Visual C+6.0的MFC类库中就提供相应
12、的函数实现这样的功能,使用时,只要在用户程序任何地方调用它们即可。它们的函数原型如下:通用对话框与消息对话框通用对话框与消息对话框通用对话框与消息对话框通用对话框与消息对话框第14页/共59页 int AfxMessageBox(LPCTSTR lpszText,UINT nType=MB_OK,UINT nIDHelp=0);int MessageBox(LPCTSTR lpszText,LPCTSTR lpszCaption=NULL,UINT nType=MB_OK);这两个函数都是用于创建和显示消息对话框的,只不过AfxMessageBox 是全程函数,可用在任何地方。而Message
13、Box 只能用于控件、对话框、窗口等一些窗口类中。例如:int n=MessageBox(输入成绩?,系统提示,MB_YESNO|MB_ICONQUESTION);if(n=IDYES)第15页/共59页1控件添加的方法 2控件的选取 3控件的移动、复制与删除 4设定控件的Tab键次序 5控件的布局 6常用控件的控件通知消息 选择指针静态文本控件组框复选框组合框水平滚动条旋转滑块列表控件Tab控件超文本控件月历自定义控件图像编辑框按钮单选按钮列表框垂直滚动条进度条热键树状控件动画日期时间选择IP地址扩展组合框图7.13 控件工具栏上下左右对齐水平或垂直方向均匀分布切换栅格或向导上下或左右居中使
14、控件具有相同的宽度或大小测试对话框图7.15 控件布局工具栏控件基本操作控件基本操作控件基本操作控件基本操作第16页/共59页类类类类 对字符串的存取及有关操作,还可通过标准C+里的字符串类string(定义在string.h头文件中)和MFC中的CString类(定义在afx.h头文件中)。string string是一种用户自定义的数据类型,它由是一种用户自定义的数据类型,它由C+C+标准库来支持,而不是标准库来支持,而不是C+C+语言本身的一部分。在使用语言本身的一部分。在使用stringstring数据类型之前,需要在程序中包含头文件数据类型之前,需要在程序中包含头文件stringst
15、ring并声明其所在的名字空间并声明其所在的名字空间stdstd,如:,如:#include#include using namespace std;using namespace std;然后在程序中即可定义然后在程序中即可定义stringstring类型的变量。如:类型的变量。如:string name=string name=张三张三;下面主要介绍下面主要介绍MFCMFC中中CStringCString类的使用。类的使用。第17页/共59页 当要使用当要使用MFCMFC中的中的CString CString 类时,首先必须选择类时,首先必须选择“工程工程设置设置”命令,在命令,在“Mic
16、rosoft Foundation Class”Microsoft Foundation Class”选择除选择除“Not Using MFC”Not Using MFC”以外的项目。然后源程序的头文件加上:以外的项目。然后源程序的头文件加上:#include#include afx.hafx.h形式:CString 对象名;CString 对象名=字符串常量;CString 对象名(字符串常量);CString 对象名(字符,int n);/重复产生n个相同的字符例如:CString s1=C+程序设计;CString s(d,5);cout、=、=、!=关系运算关系运算st1=”ASDF”
17、st1st3false true 取取指指定定位位置置的的字字符符将将CString对象看成数组对象看成数组st10st13A/第一个字符位置为第一个字符位置为0F2.2.基本运算基本运算基本运算基本运算第19页/共59页形式:函数值类型 CString对象.成员函数名(参数列表)(1)取子串形式:CString Mid(int nFirst,int nCount)/取字符串中nFirst位置开始的nCount个字符CString Left(int nCount)/取字符串的左边nCount个字符CString Right(int nCount)/取字符串的右边nCount个字符有定义:有定义
18、:CString s(CString s(1234512345););则:则:s.Mid(2,2)s.Mid(2,2)的值为的值为3434 s.Left(3)s.Left(3)的值为的值为1231233.3.成员成员成员成员函数函数函数函数第20页/共59页(2)查看字符串信息int Find(TCHAR ch);int Find(TCHAR ch);/返回指定字符在串中的位置返回指定字符在串中的位置int int Find(LPCTSTR Find(LPCTSTR lpszSub);lpszSub);/返返回回指指定定子子串串在在串串中中的的位位置置int GetLength();int G
19、etLength();/返回字符串的字符数返回字符串的字符数(3)字符串修改 void SetAt(int nIndex,TCHAR ch)void SetAt(int nIndex,TCHAR ch)/用字符替换指定位置上的字符用字符替换指定位置上的字符 int Insert(int nIndex,TCHAR ch)int Insert(int nIndex,TCHAR ch)/将将字字符符插插入入到到指指定定位位置置,原原位位置置的的字字符符右移右移 int Delete(int nIndex,int nCount=1)int Delete(int nIndex,int nCount=1)
20、/从指定位置开始删除一个或多个字符从指定位置开始删除一个或多个字符 int Replace(TCHAR chOld,TCHAR chNew)int Replace(TCHAR chOld,TCHAR chNew)/将新字符替换字符串中的老字符将新字符替换字符串中的老字符 int Replace(LPCTSTR lpszOld,LPCTSTR lpszNew)int Replace(LPCTSTR lpszOld,LPCTSTR lpszNew)/同上,区别替换的是子字符串同上,区别替换的是子字符串第21页/共59页(4)转换字符串 void MakeUpper()void MakeUpper(
21、)/将字符串中的所有字符转换成大写将字符串中的所有字符转换成大写 void MakeLower()void MakeLower()/将字符串中的所有字符转换成小写将字符串中的所有字符转换成小写 void MakeReverse()void MakeReverse()/将字符串中各字符的顺序倒转将字符串中各字符的顺序倒转 void Empty()void Empty()/将字符串中的所有字符删除将字符串中的所有字符删除(5)格式化输出形式:形式:viod Format(viod Format(格式字符串,输出参数列表格式字符串,输出参数列表);功能:功能:构造一个输出的字符串。构造一个输出的字符
22、串。其中:其中:11)“格式字符串格式字符串”由输出的文字和数据格式说明符组成,文字可以是直接键入的各种字符,还可以是转义符;数据格式说明符形式:由输出的文字和数据格式说明符组成,文字可以是直接键入的各种字符,还可以是转义符;数据格式说明符形式:%输出宽度输出宽度格式字符格式字符第22页/共59页格式字符说 明d十进制整数十进制整数c输出单个字符输出单个字符s输出字符串输出字符串flff以小数形式输出单精度数以小数形式输出单精度数lf双精度数双精度数22)“输出参数列表输出参数列表”表示要输出的数据,其个数与类型必须与格式说明符依次对应。表示要输出的数据,其个数与类型必须与格式说明符依次对应。
23、有定义:有定义:CString s;CString s;则:则:s.Format(a1=%d,a2=%5.2f,a3=%s,123,12.3,abc);s.Format(a1=%d,a2=%5.2f,a3=%s,123,12.3,abc);couts;couts;输出:输出:a1=123,a2=12.30,a3=abca1=123,a2=12.30,a3=abc第23页/共59页【例7-1】使用CString 类对象数组存放若干个字符串,采用选择法排序,实现对字符串数组的排序。程序:#include iostream.h#include afx.h void main()CString s4=
24、Fortran,C+,Pascal,Visual Basic,t;int i,j,m;for(i=0;i3;i+)/选择法排序 m=i;for(j=i+1;j4;j+)if(sjsm)m=j;t=si;si=sm;sm=t;for(i=0;i4;i+)couti siendl;第24页/共59页1静态控件:包括静态文本(Static Text)、组框和图片控件(Picture)。常用控件与功能函数常用控件与功能函数常用控件与功能函数常用控件与功能函数第25页/共59页2按钮控件 按钮是用于实现一种开与关的输入,常用的有:按钮是用于实现一种开与关的输入,常用的有:普通按钮普通按钮、复选框按钮复选
25、框按钮和和单选按钮单选按钮。MFCMFC的的CButtonCButton类封装了按钮控件。类封装了按钮控件。普通按钮也称命令按钮,可以立即产生某个动作、执行某个命令,一般不需要连接变量;普通按钮也称命令按钮,可以立即产生某个动作、执行某个命令,一般不需要连接变量;单选按钮必须成组出现,用户在一组按钮中最多只能选择一项。设计时同一组的按钮必须一个接一个地放进对话框中,中间不能插入其他控件,并且一个组的第一个按钮要选中单选按钮必须成组出现,用户在一组按钮中最多只能选择一项。设计时同一组的按钮必须一个接一个地放进对话框中,中间不能插入其他控件,并且一个组的第一个按钮要选中“GroupGroup”属性
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Visual C可视化编程基础教案 可视化 编程 基础 教案
限制150内