第7章 Visual C++可视化编程基础

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7.3 MFC及应用程序框架
7.3.1 MFC概述 微软基础类库(MFC)是微软为Windows程序员提供 的 一 个 面 向 对 象 的 Windows 编 程 接 口 , 它 封 装 了 大 部 分 Windows API 函 数 , 大 大 简 化 了 Windows 编 程 工 作 。 Microsoft公司的MFC具有以下特点: 1.完全支持所有的Windows函数、控制、消息、GDI (图形设备接口)基本图形函数、菜单以及对话框。 2.使用与传统的Windows API同样的命名规则,因此, 一个类所能完成的工作可直接从名字得知。 3.不使用容易产生错误的switch/case语句。 4.通过发送有关对象信息到文件的能力,来提供更好 的判断支持。也可以确认成员变量。 5.代码少,速度快,容错处理能力强。 6.在运行时确定数据对象的设计。
1. 定义CString 类对象
当要使用MFC中的CString 类时,首先必须选择“工 程→设置”命令,在“Microsoft Foundation Class”选择 除“Not Using MFC”以外的项目。然后源程序的头文件 加上:#include "afx.h" 形式: CString 对象名; CString 对象名="字符串常量"; CString 对象名("字符串常量"); CString 对象名('字符',int n); //重复产生n个相同的字符 例如: CString s1="C++程序设计"; CString s('d',5);cout<<s; //s获得字符串”ddddd”
7.4.3通用对话框与消息对话框 为了方便用户的程序开发,Visual C++提供了一些通 用对话框和消息对话框供用户使用。 1.通用对话框 Windows提供了一组标准用户界面的对话框,它们都 有相应的MFC库中的类来支持。用来操作这些通用对话框 的类就是CCommonDialog类,它从Cdialog类中派生,用 户可以与使用其他对话框一样使用通用对话框。 2.消息对话框 消息对话框是最简单的一种对话框,它只是用于显示 信息。在Visual C++6.0的MFC类库中就提供相应的函数实 现这样的功能,使用时,只要在用户程序任何地方调用它 们即可。它们的函数原型如下:
st2的值为”C++程序设计 教程”
在st2相同初值的基础上效 果同上
>、<、 == 、>=、 关系运算 <=、 !=
7.2.1 Windows API应用程序实例 共有上千个标准的API函数,调用方法与调用C语言库 函数类似 示例:
#include "windows.h" int APIENTRY WinMain(HINSTANCE hInstance ,HINSTANCE hPrevInstance ,LPSTR lpCmdLine ,int nCmdShow) {MessageBox(NULL,"简单的Windows应用程序!","API函数示例",MB_OK); return 0; }
3.为控件连接变量,即为控件命名。
4.添加并且编写消息处理函数。 5.编译、链接并运行应用程序
7.4.2对话框的调用 由于对话框的代码是以类为模块来设计的,使用时需 要在程序中加入该类的头文件,并定义一个类对象,然后 就可以直接使用该类的相关成员。使用的步骤如下: 1.利用项目工作区ClassView打开相应的.cpp文件,在 该源文件的前面加上对话框类的头文件。 假设我们为对 话框定义的类名为CMyDlg,则需在源文件的前面加上: #include “MyDlg.h” //注意头文件前比类名少个大写的C 2.在需要调用的位置添加下列代码: CMyDlg dlg; //定义对话框对象 dlg.DoModal(); //显示对话框
int AfxMessageBox(LPCTSTR lpszText,UINT nType=MB_OK,UINT nIDHelp=0); int MessageBox(LPCTSTR lpszText, LPCTSTR lpszCaption=NULL,UINT nType=MB_OK);
这两个函数都是用于创建和显示消息对话框的,只不 过AfxMessageBox是全程函数,可用在任何地方。而 MessageBox只能用于控件、对话框、窗口等一些窗口类中。 例如: int n=MessageBox(" 输 入 成 绩 ? "," 系 统 提 示 ", MB_YESNO| MB_ICONQUESTION); if (n==IDYES) {……}
4.事件驱动
Windows应用程序以消息为基础,以事件驱动之。 Windows应用程序启动之后将进入一个消息循环,等待系统或 应用程序的消息,消息的产生是因为事件发生的结果, Windows程序设计主要围绕编写事件或消息的响应函数上。
5.消息及其在Windows编程中的应用
Windows 应 用 程 序 的 运 行 是 依 靠 事 件 来 驱 动 , 利 用 一 个 while循环实现不断等待,如果有事件发生,操作系统会以消息 的形式传递给应用程序,应用程序会捕获相应的消息,然后通 过调用相应的函数响应消息。
用Visual C++编写Windows应用程序主要有两种方法: 1.Application Programming Interface——API API是Windows系统和Windows应用程序间的标准程序接口,应用 程序可以通过此接口访问系统。凡是在Windows工作环境下执行的应 用程序都可以通过调用API函数来实现各种功能的操作。在Windows 程序设计的初期,程序员所能做使用的编程工具就只有使用API函数, 通过API函数的调用组合,就可以搭建出各种界面丰富、功能灵活的 应用程序。 2.Microsoft Foundation Class——MFC MFC是Visual C++的核心,是 Microsoft公司提供的用来编写 Windows应用程序的C++类库, 集成了大量已经预先定义好的类,大 约有200多个,用户可以根据编程的需要调用相应的类或自定义有关 的类。这些类可以分成两种:一是CObject类的派生类;二是非 CObject派生类,如表示点的CPoint类,表示矩形的CRect类等。
7.4.4 控件基本操作 1.控件添加的方法 2.控件的选取 3.控件的移动、复制与删除
选择指针 静态文本控件 组框 复选框 组合框 图像 编辑框 按钮 单选按钮 列表框 垂直滚动条 进度条 热键 树状控件 动画 日期时间选择 IP地址 扩展组合框 图7.13 控件工具栏
4.设定控件的Tab键次序
7.3.2 应用程序框架 在Visual C++中,可以创建以下3类典型的Windows 应用程序,它们都是通过MFC AppWizard(exe)(以下简 称 AppWizard)向导创建的:
(1)基于对话框的应用程序:这类程序适合于文档较 少而交互操作较多的应用场合,如Windows自带的计算器 程序。 (2)单文档界面(SDI)应用程序:这类程序一次只 能打开一个文档,如Windows自带的记事本程序。
Fra Baidu bibliotek第7章 Visual C++可视化编程基础
7.1 Windows程序设计概述
7.2 API及应用程序基本框架 7.3 MFC及应用程序框架 7.4 对话框与常用控件 7.5 菜单、工具栏与状态栏设计 7.6 文档/视图结构应用程序 7.7 程序举例
7.1 Windows程序设计概述
7.1.1基于Visual C++的Windows应用程序设计方法
7.1.3 Windows应用程序中的常见消息 消息在Windows程序设计中是很关键的因素 ,在 API程序设计方法中要求熟练记忆常见消息 ,但是在 MFC程序设计方法中只要求了解这些消息的相关含义即 可。 1.鼠标消息 2.键盘消息
3.关闭窗口消息
4.退出程序消息 5.重画消息
7.2 API及应用程序基本框架
(3)多文档界面(MDI)应用程序:这类程序可以同 时打开多个文档并进行处理,处理的过程中很容易地进 行切换,如Microsoft Word。
7.4 对话框与常用控件
对话框是Windows应用程序中最重要的用户界面元素 之一,是与用户交互的重要手段。在Visual C++中,对话 框既可以单独组成一个简单的应用程序,又可以成为文档 /视图结构程序的资源。 7.4.1创建对话框程序的步骤 1.建立基于对话框的MFC应用程序框架 2.放置控件,设置属性,完成对话框窗口界面设计
5.控件的布局 6.常用控件的控件通知消息
上下左右对齐 水平或垂直方向均匀分布 切换栅格或向导
水平滚动条 旋转 滑块 列表控件 Tab控件 超文本控件 月历 自定义控件
测试对话框
上下或左右居中
使控件具有相同的宽度或大小
图7.15 控件布局工具栏
7.4.5 CString 类 对字符串的存取及有关操作,还可通过标准C++里的字 符串类string(定义在string.h头文件中)和MFC中的 CString类(定义在afx.h头文件中)。 string是一种用户自定义的数据类型,它由C++标准库 来支持,而不是C++语言本身的一部分。在使用string数据 类型之前,需要在程序中包含头文件string并声明其所在的 名字空间std,如: #include < string> using namespace std; 然后在程序中即可定义string类型的变量。如: string name="张三"; 下面主要介绍MFC中CString类的使用。
注意:不是典型的Windows应用程序,典型WinMain具有 固定结构,完成三个任务: 注册窗口类、创建并初始化窗口、创建消息循环
7.2.2 Windows API应用程序结构分析 Windows应用程序具有相对固定的基本结构,其中由入 口函数WinMain和窗口函数构成基本框架,并包含各种数 据类型、数据结构与函数等。 1.WinMain函数 WinMain函数是所有Windows应用程序的入口,类似于 C语言中的main函数,其功能是完成一系列的定义和初始 化工作,并产生消息循环。 WinMain函数有三个基本的组成部分:函数说明、初始 化和消息循环。 2.窗口函数 窗口函数是应用程序处理接收到的消息的函数,其中 包含了应用程序对各种可能接收到的消息的处理过程。
2. 基本运算
CString 类的特色之一是可将一些常用运算符直接作用用 于 其 对 象 。 假 设 已 有 如 下 定 义 的 CString 对 象 : CString st1("ASDFG"),st2,st3("DD");
运算符
= + += 赋值 字符串连接 字符串连接并 赋值
含义
实例
结果
st2=”C++程序设计”; st2的值为”C++程序设计” st3=st1; st3的值为”ASDFG” st2=st2+”教程” st2+=”教程”
2.常用Windows数据类型
Windows应用程序的源程序中包含种类繁多的数据类型, 其中windows.h是用户调用系统功能的关键,文件中定义了 Windows系统使用的数据类型。
3.句柄
句柄是指系统创建对象后返回的用来代表该对象的一个唯 一的4字节长整数值,是整个Windows编程的基础,用于标识应 用程序中不同的对象和同类对象中不同的实例。例如,一个窗 口、按钮、图标、滚动条、输出设备、控件或者文件等。应用 程序通过句柄能够访问相应的对象信息,它代表对对象的引用。
7.1.2 Windows程序设计的基本概念 Windows应用程序的特点: 具有标准的图形用户界面。 具有与硬件无关的特性。 采用“消息传递,事件驱动”的运行机制。 1.窗口与对象
窗口是应用程序与用户之间交互的接口环境。用户可以通过 窗口输入数据,控制应用程序的运行;应用程序可以通过窗口 显示数据和运行状态。 对象是指Windows的规范部件,包括各种窗口、菜单、按钮、 对话框以及程序模块等。
相关文档
最新文档