mfc编程基础 1 基于对话框的windows应用程序 2011年6月

上传人:xzh****18 文档编号:41454025 上传时间:2018-05-29 格式:DOC 页数:23 大小:273.50KB
返回 下载 相关 举报
mfc编程基础 1 基于对话框的windows应用程序 2011年6月_第1页
第1页 / 共23页
mfc编程基础 1 基于对话框的windows应用程序 2011年6月_第2页
第2页 / 共23页
mfc编程基础 1 基于对话框的windows应用程序 2011年6月_第3页
第3页 / 共23页
mfc编程基础 1 基于对话框的windows应用程序 2011年6月_第4页
第4页 / 共23页
mfc编程基础 1 基于对话框的windows应用程序 2011年6月_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《mfc编程基础 1 基于对话框的windows应用程序 2011年6月》由会员分享,可在线阅读,更多相关《mfc编程基础 1 基于对话框的windows应用程序 2011年6月(23页珍藏版)》请在金锄头文库上搜索。

1、1第第 1 章章 基于对话框的基于对话框的 Windows 应用程序应用程序1. 简介 Windows 编程的两种方法,即 Windows API 编程和 MFC 编程。 2. 基于对话框的应用程序的创建过程: 建立基于对话框的 MFC 应用程序框架; 放置控件; 设置控件属性; 为控件连接变量,即为控件命名; 添加并且编写消息处理函数。 3. 常用基本控件 静态文本框:主要用来显示文本信息,不能接受用户输入 命令按钮:是最常见的、应用最广泛的一种控件。在程序执行期间,当单击某个命 令按钮后就会执行相应的消息处理函数。 编辑框:是一个文本编辑区域,用户可以在该区域输入、编辑和显示正文内容。 框

2、架:将一组相关的控件框起来,达到标识一组控件的作用。 单选按钮:用户在一组单选按钮中最多只能选择一项。当某一项被选定后,其他选 项自动变成未选状态。 复选框:列出了可供选择的项,用户可根据需要选择其中的一项或多项,各选项之 间的状态互不相关。 列表框:通过显示多个选项,供用户选择,达到与用户对话的目的。 组合框:组合了编辑框和列表框的特性而形成的一种控件。在列表框中列出可供用 户选择的项,当用户选定某项后,该项内容自动装入编辑框中。 滚动条:通常附在对话框上用来协助观察数据或确定位置,也可以用来作为数据输 入的工具。1.1 Windows 编程基础编程基础Windows 应用程序的主要特点是:

3、 具有标准的图形用户界面。 具有与硬件无关的特性。 采用“消息传递,事件驱动”的运行机制。 用 Visual C+ 编写 Windows 应用程序主要有两种方法:一是使用 Windows 提 供的应用程序接口( Application Programming Interface , API )函数;二 是使用 Microsoft 提供的微软基础类( Microsoft Foundation Class , MFC ) 。1.1.1 Windows API 编程编程从本质上来说, API 是 Windows 系统支持的函数定义、参数定义和消息格式的集2合,共有上千个标准的 API 函数可供应用程

4、序调用。调用 Windows API 函数的方法与 调用 C 语言库函数的方法基本相同。 下面通过一个简单的实例来说明 Windows API 编程是如何调用 API 函数。# include “windows.h“ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) MessageBox ( NULL,“ 这是一个简单的 Windows 应用程序! “,“API 函数调用示例 “,MB_OK ); return 0; 这是一个简单的 Windows

5、应用程序。 Windows 应用程序的主函数是 WinMain() ,不是 main() 函数。函数体中调用了 Windows API 函数 MessageBox() ,弹出如 图所示的对话框。 在直接使用 API 函数进行 Windows 编程时,程序员不仅需要熟记一大堆常用的 API 函数,而且还要对 Windows 操作系统有深入的了解,编写大量的代码。用这种方式 即使是开发一个很简单的应用程序也需要大量的工作,直接用 API 函数进行编程是需要 极大的耐心和丰富的编程经验。1.1.2 MFC 编程编程MFC 是 Visual C+ 的核心。 虽然在 Windows 应用程序中可以直接调

6、用 API 函数,但是一般不经常直接调用,而是从 MFC 类创建对象并调用属于这些对象的成员函 数。 MFC 是 Microsoft 公司提供的用来编写 Windows 应用程序的 C+ 类库, MFC 大约有 200 多个类,可以分成两种:一是 CObject 类的派生类,它们以层次结构的形 式组织起来,几乎每个子层次结构都与一个具体的 Windows 实体对应;二是非 CObject 派生类,这些都是独立的类,如表示点的 CPoint 类,表示矩形的 CRect 类。在 Visual C+ 中,可以创建以下 3 类典型的 Windows 应用程序,它们都是通 过 MFC AppWizard

7、(exe) (以下简称 AppWizard )向导创建的: ( 1 )基于对话框的应用程序:这类程序适合于文档较少而交互操作较多的应用场 合,如 Windows 自带的计算器程序。 ( 2 )单文档界面( SDI )应用程序:这类程序一次只能打开一个文档,如 Windows 自带的 Notepad 程序。 ( 3 )多文档界面( MDI )应用程序:这类程序可以同时打开多个文档并进行处理, 处理的过程中很容易地进行切换,如 Microsoft Word 。31.2 基于对话框的基于对话框的 Windows 应用程序应用程序对话框是一种特殊类型的窗口,绝大多数 Windows 程序都通过对话框与

8、用户进行交 互。在 Visual C+中,对话框既可以单独组成一个简单的应用程序,又可以成为文档/ 视图结构程序的资源。1.2.1 简单应用程序实例简单应用程序实例创建对话框程序的步骤: ( 1 )建立基于对话框的 MFC 应用程序框架; ( 2 )放置控件(不显示控件箱时,右击不显示控件箱时,右击 VC6.0 工具栏空白处,选择工具栏空白处,选择“控件控件” ) ; ( 3 )设置控件属性; ( 4 )为控件连接变量,即为控件命名; ( 5 )添加并且编写消息处理函数。 【 例例 1.1】 编写一个如图所示的应用程序。若单击“复制”按钮,则把上面的编辑框 中的内容复制到下面的编辑框中;若单击

9、“结束”按钮,则退出程序的运行。程序的创建过程: ( 1 )建立基于对话框的 MFC 应用程序框架。 选择“文件 | 新建”命令; 在“工程”选项卡中,选定“ MFC AppWizard(exe) ” ,输入工程名称,选择“确定” 。 选定“ D 基本对话” ,即创建基于对话框的应用程序,选择“完成” 。 ( 2 )放置控件 删除原有的控件。 放置所需的控件:两个编辑框和两个命令按钮。方法是:先单击控件工具栏上的 控件图标选择所需的控件,然后在对话框设计界面上按住鼠标左键拖拉出所需要的大小后 释放。 ( 3 )设置控件属性 选定控件,在其快捷菜单中选择“属性”命令,在弹出如图所示的对话框中进行

10、设置。 上面编辑框的属性设置为: 选定“ Multiline ”复选框,编辑框中可以输入多行文本。 选定“ Vertical scroll ”和“ Auto Vscroll ” ,编辑框将有垂直滚动条。 4 选定“ Want return ” 。 下面编辑框属性的设置与上面编辑框基本一样,只是可以不选定“ Want return ” 。从图中可以看到编辑框的 ID 为 IDC_EDIT1 ,这是该控件的标识。任何一个控件 都有一个 ID ,某些函数需要通过 ID 对控件进行操作。 ( 4 )连接变量 为控件连接变量就是为控件起一个名称。每一个控件都是一个对象,调用 MFC 类库 中的函数都是通

11、过对象来实现的。为 IDC_EDIT1 连接变量 m_e1 的步骤为: 在 IDC_EDIT1 编辑框的快捷菜单中选“建立类向导” ,弹出 “ MFC ClassWiard ”对话框。 在“ Member Variables ”中,选定“ IDC_EDIT1 ” ,再选择“ Add Variable ”命令。 在 “ Add Member Variable ”对话框中输入以下的数据: Member Variable name (内存变量名): m_e1 ; Category (类别): Control ; Variable type (类型): Cedit 用同样的方法再为 IDC_EDIT2

12、 连接一个变量 m_e2 。 ( 5 )添加并且编写消息处理函数。 本例要求单击“复制”按钮后上面编辑框中的内容复制到下面的编辑框中。也就是说, 在程序运行时,在“复制”按钮上发生单击事件后, Windows 向对话框发出了一个 BN_CLICKED 消息, CTESTDlg 类应有一个处理该消息的函数。 添加和编写这个消息处理函数的过程是: 双击“复制”按钮,弹出的“ Add Member Function ”对话框,输入函数名(缺 省函数名为 OnButton1 ) ,选择“确定”按钮后,添加了一个空函数。另一个方法是在“ MFC ClassWiard ”对话框“ Message Maps

13、 ”选项卡中,选定 IDC_BUTTON1 和 BN_CLICKED 消息,然后选择“ Add Function ”按钮即可。 添加的空函数如下: void CTESTDlg:OnButton1() 5/ TODO: Add your control notification handler code here 为 void CTESTDlg:OnButton1() 添加代码 void CTESTDlg:OnButton1() / TODO: Add your control notification handler code here m_e1.SetSel(0,-1); / 选定编辑框 m

14、_e1 中的所有内容 m_e1.Copy(); / 把编辑框 m_e1 中选定的内容复制到剪贴板 m_e2.SetSel(0,-1); / 选定编辑框 m_e2 中的所有内容 m_e2.Paste(); / 将剪贴板中内容粘贴到编辑框 m_e2 中,替换所有选定的内容 用同样的方法为“结束”按钮添加 、编写如下的消息处理函数: void CTESTDlg:OnButton2() / TODO: Add your control notification handler code here OnOK(); / 退出对话框程序 1.2.2 对话框应用程序框架对话框应用程序框架用 AppWizard

15、 创建基于对话框的应用程序框架(假定工程名为 TEST )后,项目 工作区上增加了一个“ ResourceView ”选项卡,中间是对话框设计界面,右边是控件 工具栏。 1 ResourceView 在 Visual C+ 中,与用户进行交互的对话框界面被认为是一种资源。展开“ Dialog ” ,可以看到有一个 ID 为 IDD_TEST_DIALOG 的资源,对应中间的对话框设计 界面。不管在何时,只要双击对话框资源的 ID ,对话框设计界面就会显示在中间。 2 ClassView 在 ClassView 中,如图所示,可以看到生成了 3 个类: CAboutDlg 、 CTESTApp

16、和 CTESTDlg 。 ( 1 ) CAboutDlg :对应生成的版本信息对话框。 ( 2 ) CTESTDlg :对话框类,从 CDialog 继承过来的,在程序运行时看到的 对话框就是它的一个具体对象。 ( 3 ) CTESTApp :应用程序类,从 CWinApp 继承过来,封装了初始化、运行、 终止该程序的代码。 3 对话框设计界面 对话框设计界面是进行对话框设计的地方,可以将各种控件放置在这里。 4 控件工具栏 控件工具栏上有 26 个控件图标,可以通过这些图标在对话框上设计出所需的控件。61.3 静态文本框、命令按钮和编辑框静态文本框、命令按钮和编辑框静态文本框、命令按钮和编辑框是 Windows 应用程序中最基本的控件。静态文本框 是 CStatic

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

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