MFC 编程基础 1 基于对话框的windows应用程序

2026/1/27 16:04:46

第1章 基于对话框的Windows应用程序

1.简介Windows编程的两种方法,即Windows API编程和MFC编程。 2.基于对话框的应用程序的创建过程:

? 建立基于对话框的 MFC 应用程序框架; ? 放置控件; ? 设置控件属性;

? 为控件连接变量,即为控件命名; ? 添加并且编写消息处理函数。 3.常用基本控件:

? 静态文本框:主要用来显示文本信息,不能接受用户输入

? 命令按钮:是最常见的、应用最广泛的一种控件。在程序执行期间,当单击某个命令按钮后就会执行相应的消息处理函数。

? 编辑框:是一个文本编辑区域,用户可以在该区域输入、编辑和显示正文内容。 ? 框架:将一组相关的控件框起来,达到标识一组控件的作用。

? 单选按钮:用户在一组单选按钮中最多只能选择一项。当某一项被选定后,其他选项自动变成未选状态。

? 复选框:列出了可供选择的项,用户可根据需要选择其中的一项或多项,各选项之间的状态互不相关。

? 列表框:通过显示多个选项,供用户选择,达到与用户对话的目的。

? 组合框:组合了编辑框和列表框的特性而形成的一种控件。在列表框中列出可供用户选择的项,当用户选定某项后,该项内容自动装入编辑框中。

? 滚动条:通常附在对话框上用来协助观察数据或确定位置,也可以用来作为数据输入的工具。

1.1 Windows编程基础

Windows 应用程序的主要特点是: ? 具有标准的图形用户界面。 ? 具有与硬件无关的特性。

? 采用“消息传递,事件驱动”的运行机制。

用 Visual C++ 编写 Windows 应用程序主要有两种方法:一是使用 Windows 提供的应用程序接口( Application Programming Interface , API )函数;二是使用 Microsoft 提供的微软基础类( Microsoft Foundation Class , MFC )。

第 1 页 共 25 页 1

1.1.1 Windows API编程

从本质上来说, API 是 Windows 系统支持的函数定义、参数定义和消息格式的集合,共有上千个标准的 API 函数可供应用程序调用。调用 Windows API 函数的方法与调用 C 语言库函数的方法基本相同。

下面通过一个简单的实例来说明 Windows API 编程是如何调用 API 函数的。 ?????????????????????? # include \

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {

MessageBox ( NULL,\这是一个简单的 Windows 应用程序! \函数调用示

例 \

return 0; }

…………………………………………………………

这是一个简单的 Windows 应用程序。 Windows 应用程序的主函数是 WinMain() ,不是 main() 函数。函数体中调用了 Windows API 函数 MessageBox() ,弹出如图所示的对话框。

在直接使用 API 函数进行 Windows 编程时,程序员不仅需要熟记一大堆常用的 API 函数,而且还要对 Windows 操作系统有深入的了解,编写大量的代码。用这种方式即使是开发一个很简单的应用程序也需要大量的工作,直接用 API 函数进行编程是需要极大的耐心和丰富的编程经验的。

1.1.2 MFC编程

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

在 Visual C++ 中,可以创建以下 3 类典型的 Windows 应用程序,它们都是通过 MFC AppWizard(exe) (以下简称 AppWizard )应用向导创建的:

(1)基于对话框的应用程序:这类程序适合于文档较少而交互操作较多的应用场合,如 Windows 自带的计算器程序。

(2)单文档界面( SDI )应用程序:这类程序一次只能打开一个文档,如 Windows 自带的 Notepad 程序。

第 2 页 共 25 页

2

(3)多文档界面( MDI )应用程序:这类程序可以同时打开多个文档并进行处理,处理的过程中很容易地进行切换,如 Microsoft Word 。

1.2 基于对话框的Windows应用程序

对话框是一种特殊类型的窗口,绝大多数Windows程序都通过对话框与用户进行交互。在Visual C++中,对话框既可以单独组成一个简单的应用程序,又可以成为文档/视图结构程序的资源。

1.2.1 简单应用程序实例

创建对话框程序的步骤:

(1)建立基于对话框的 MFC 应用程序框架; (2)放置控件; (3)设置控件属性;

(4)为控件连接变量,即为控件命名; (5)添加并且编写消息处理函数。

【 例 1.1】 编写一个如图所示的应用程序。若单击“复制”按钮(Button),则把上面的编辑框(Edit Box)中的内容复制到下面的编辑框中;若单击“结束”按钮,则退出程序的运行。

程序的创建过程:

(1)建立基于对话框的 MFC 应用程序框架。 ①选择“文件 | 新建”命令;

②在“工程”选项卡中,选定“ MFC AppWizard(exe) ”,输入工程名称,选择“确定”。 ③选定“ D 基本对话”,即创建基于对话框的应用程序,选择“完成”。 (2)放置控件

? 删除原有的控件。

? 放置所需的控件:两个编辑框和两个命令按钮。方法是:先单击控件工具栏上的控件图标选择所需的控件,然后在对话框设计界面上按住鼠标左键拖拉出所需要的大小后释放。

(3)设置控件属性

选定控件,在其快捷菜单中选择“属性”命令,在弹出如图所示的对话框中进行设置。

第 3 页 共 25 页

3

上面编辑框的属性设置如下:

? 选定“ Multiline ”复选框,编辑框中可以输入多行文本。 ? 选定“ Vertical scroll ”和“ Auto Vscroll ”,编辑框将有垂直滚动条。 ? 选定“ Want return ”。 (否则运行时敲回车键就退出程序)

下面编辑框属性的设置与上面编辑框基本一样,只是可以不选定“ Want return ”。

从图中可以看到编辑框的 ID 为 IDC_EDIT1 ,这是该控件的标识。任何一个控件都有一个 ID ,某些函数需要通过 ID 对控件进行操作。

(4)连接变量

为控件连接变量就是为控件起一个名称,以便在程序中使用这个名称来操作对应的控件。每一个控件都是一个对象。为 IDC_EDIT1 连接变量 m_e1 的步骤如下:

①在 IDC_EDIT1 编辑框的快捷菜单中选“建立类向导”,弹出 “ MFC ClassWizard ”对话框。

②在“Member Variables”成员变量选项卡的“Controls IDs”控件列表中,选定“ IDC_EDIT1 ”,再选择“ Add Variable ”命令。

③在 “ Add Member Variable ”对话框中输入以下的数据: Member Variable name (内存变量名): m_e1 ; Category (类别): Control ; Variable type (类型): Cedit

用同样的方法再为 IDC_EDIT2 连接一个变量 m_e2 。 (5)添加并且编写消息处理函数。

本例要求单击“复制”按钮后上面编辑框中的内容复制到下面的编辑框中。也就是说,在程序运行时,在“复制”按钮上发生单击事件后, Windows 向对话框发出了一个 BN_CLICKED 消息, CTESTDlg 类应有一个处理该消息的函数。

添加和编写这个消息处理函数的过程是:

①双击“复制”按钮,弹出的“ Add Member Function ”添加成员函数对话框,输入函数名(缺省函数名为 OnButton1 ),选择“确定”按钮后,添加了一个空函数。另一个方法是在“ MFC ClassWiard ”对话框“ Message Maps ”选项卡中,选定 IDC_BUTTON1

第 4 页 共 25 页

4


MFC 编程基础 1 基于对话框的windows应用程序.doc 将本文的Word文档下载到电脑
搜索更多关于: MFC 编程基础 1 基于对话框的windows应用程序 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219