visualcmfc简明教程

上传人:第*** 文档编号:57083828 上传时间:2018-10-18 格式:PDF 页数:32 大小:353.20KB
返回 下载 相关 举报
visualcmfc简明教程_第1页
第1页 / 共32页
visualcmfc简明教程_第2页
第2页 / 共32页
visualcmfc简明教程_第3页
第3页 / 共32页
visualcmfc简明教程_第4页
第4页 / 共32页
visualcmfc简明教程_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《visualcmfc简明教程》由会员分享,可在线阅读,更多相关《visualcmfc简明教程(32页珍藏版)》请在金锄头文库上搜索。

1、Visual C+ MFC 简明教程简明教程原著:Marshall Brain编译:张圣华第一部分:第一部分:MFC 导论导论Visual C+ 不仅仅是一个编译器。它是一个全面的应用程序开发环境,使用它你充分 利用具有面向对象特性的 C+ 来开发出专业级的 Windows 应用程序。为了能充分利用这 些特性,你必须理解 C+ 程序设计语言。掌握了 C+,你就必须掌握 Microsoft 基本类库 (MFC) 的层次结构。该层次 结构包容了 Windows API 中的用户界面部分,并使你能够很 容易地以面向对象的方式建立 Windows 应用程序。这种层次结构适用于所有版本的 Windows

2、 并彼此兼容。你用 MFC 所建立的代码是完全可移植的。 该教程将向你介绍 MFC 的基本概念和术语以及事件驱动程序设计方法。在本节中,你 将会输入、编译和运行一个简单的 MFC 程序。下一节中将向你详细解释这些代码。第三部 分讨论了 MFC 控制和如何定制它们。第四部分将介绍消息映射,你将会处理 MFC 的事件。什么是什么是 MFC? 如果你要建立一个 Windows 应用程序,应该如何下手? 好的开端是从设计用户界面开始。 首先, 你要决定什么样的用户能使用该程序并根据需 要来设置相应的用户界面对象。Windows 用户界面有一些标准的控制,如按钮、菜单、滚 动条和列表等,这对那些 Win

3、dows 用户已经是很熟悉了。 要记住的是,作为程序员必须 选择一组控制并决定如何把它们安排到屏幕上。 传统上, 你需要在纸上做一下用户界面的草 图,直到对各元素感到满意为止。这对于一些比较小的项目,以及一些大项目的早期原型阶 段是可以的。 下一步, 是要实现代码。 为任何 Windows 平台建立应用程序时, 程序员都有两种选择: C 或 C+。 使用 C,程序员是在 Windows 应用程序界面 (API ) 的水平上编写代码。该 界面是由几百个 C 函数所组成,这些函数在 Windows API 参考手册中都有介绍。对于 Windows NT,API 被称为 “Win32 API” ,以

4、区别于其用于 Windows 3.1 的 16 位 API。 Microsoft 也提供了 C+ 库,它位于任何 WindowsAPI 之上,能够使程序员的工作更 容易。它就是 Microsoft 基本类库 (MFC),该库的主要优点是效率高。它减少了大量在建立 Windows 程序时必须编写的代码。同时它还提供了所有一般 C+ 编程的优点,例如继承 和封装。MFC 是可移植的,例如,在 Windows 3.1 下编写的代码可以很容易地移植到 Windows NT 或 Windows 95 上。 因此, MFC 很值得推荐的开发 Windows 应用程序的方法, 在本教程自始至终使用的都是 M

5、FC。 当是使用 MFC 时,你编写的代码是用来建立必要的用户界面控制并定制其外观。同 时你还要编写用来响应用户操作这些控制的代码。例如,如果用户单击一个按钮时,你应该 有代码来响应。这就是事件驱动代码,它构成了所有应用程序。一旦应用程序正确的响应了 所有允许的控制,它的任务也就完成了。 你可以看出,使用 MFC 进行 Windows 编程时是一件比较容易的的过程。本教程的目 的是比较详细地教你如何快速建立专业级的应用程序的技术。Visual C+ 应用程序开发程 序环境特别适合于使用 MFC (也有其它开发环境使用 MFC,译者注),所以一起学习 MFC 和 Visual C+ 能够增强你的

6、开发程序的能力。Windows 词汇词汇 在 Windows 用户界面和软件开发中所要用到的词汇都是基本和唯一的。 对于新接触该 环境的用户,下面复习几个定义以便使我们的讨论更加容易。 Windows 应用程序使用几个标准的控制: 静态文本标签 按钮 列表框 组合框(一种更高级的列表框) 单选按钮 检查按钮 编辑框(单行和多行) 滚动条你可以通过代码或“资源编辑器”来建立这些控制,在资源编辑器中可以建立对话框和 这些控制。在本教程中,我们将使用代码来建立它们。 Windows 支持几种类型的应用程序窗口。 一个典型的应用程序应该活动在称为 “框架窗 口”中。一个框架窗口是一个全功能的主窗口,用

7、户可以改变尺寸、最小化、最大化等。 Windows 也支持两种类型的对话框:模式和无模式对话框。模式对话框一旦出现在屏幕上, 只有当它退出时,屏幕上该应用程序的其余部分才能响应。无模式对话框出现在屏幕上时, 程序的其余部分也可以作出响应,它就象浮动在上面一样。 最简单的 Windows 应用程序是使用单文档界面(SDI), 只有一个框架窗口。 Windows 的 钟表、PIF 编辑器、记事本等都是 SDI 应用程序的例子。Windows 也提供了一种称为多文 档界面的组织形式,它可用于更复杂的应用程序。MDI 系统允许用户在同一应用程序中同 时可以查看多个文档。例如,一个文本编辑器可以允许用户

8、同时打开多个文本文件。使用 MDI 时,应用程序有一个主窗口,在主窗口中有一些子窗口,每个子窗口中各自包含有各 自的文档。在 MDI 框架中,主窗口有一个主菜单,它对主框架中最顶端窗口有效。各子窗 口都可以缩成图标或展开,MDI 主窗口也可以变成桌面上的一个图标。MDI 界面可能会给 你一种第二桌面的感觉,它对窗口的管理和删除混乱的窗口有很大的帮助。 你所建立的没一个应用程序都会使用它自己的一套控制、 菜单结构以及对话框。 应用程 序界面的好坏取决于你如何选择和组织这些界面对象。Visual C+ 中的资源编辑器可以使 你能容易的建立和定制这些界面对象。 事件驱动软件和词汇 所有基于窗口的 G

9、UI 都包含相同的基本元素, 它们的操作方式都是相同的。 在屏幕上, 用户所看到的是一组窗口,每个窗口都包含有控制、图标、对象以及一些处理鼠标和键盘的 元素。从用户角度来看,各系统的界面对象都是相同的:按钮、滚动条、图标、对话框以及 下拉菜单等等。尽管这些界面元素的“外观和感觉”可能有些不同,但这些界面对象的工作 方式都是相同的。例如,滚动条对于 Windows、Mac 和 Motif 可能有些不同,但他们的作用 完全是一样的。 从程序员的角度来看,这些系统在概念上是相似的,尽管它们可能有很大的不同。为了 建立 GUI 程序,程序员第一步要把所有需要的用户界面控制都放到窗口上。例如,如果程 序

10、员要建立一个从摄氏到华氏的转换的简单程序, 则程序员所选择的用户界面对象来完成并 在屏幕上把结果显示出来。 在这个简单的程序中, 程序员可能需要用户在一个可编辑的编辑 框中输入温度值, 在一个不可编辑的编辑框中显示转换结果, 然后让用户可以单击一个标有 “退出”的按钮来退出应用程序。因为是用户来操作应用程序的控制, 所以程序必须作出响应。 所做的响应依赖于用户使 用鼠标或键盘在不同控制上的操作。 屏幕上的每个用户界面对象对事件的响应是不同的。 例 如, 如果用户单击退出按钮, 则该按钮必须更新屏幕、 加亮它自己。 然后程序必须响应退出。 Windows 所用的模式也是类似的。在一个典型的应用程

11、序中,你将建立一个主窗口, 并且在其中放置了一些用户界面控制。 这些控制通常被称为子窗口它们就象一些在主窗 口中的更小更特殊的子窗口。作为程序员,你应该通过函数调用来发送信息操作这些控制、 通过把信息发送给你到代码来响应用户的操作。 如果你从未做过事件驱动程序设计,则所有这些对你来说可能是很陌生的。但是,事件 驱动程序设计方式是很容易理解的。 具体的细节对不同的系统可能有些不同, 但是其基本概 念是类似的。在一个事件驱动界面中,应用程序会在屏幕上绘制几个界面对象,如按钮、文 本区和菜单。 应用程序通常通过一段称为事件循环的的代码来响应用户的操作。 用户可以使 用鼠标或键盘来任意操作屏幕上的对象

12、。例如,用户用鼠标单击一个按钮。用鼠标单击就称 为一个事件。 事件驱动系统把用户的动作如鼠标单击和键盘操作定义为事件, 也把系统操作 如更新屏幕定义为事件。 在比较低级的编程方法中,如用 C 直接编写 Windows API 应用程序,代码量是非常大 的,因为你所要照顾的细节太多了。例如,你用某种类型的结构来接收单击鼠标事件。你的 事件循环中的代码会查看结构中不同域, 以确定哪个用户界面对象受到了影响, 然后会完成 相应的操作。当屏幕上有很多对象时,应用程序会变得很大。只是简单地处理哪个对象被单 击和对它需要做些什么要花费大量的代码。 幸运的是,你可以在比较高级的方法来进行编程,这就是使用 M

13、FC。在 MFC 中,几乎 所有的低级的细节处理都为你代办了。 如果你把某一用户界面对象放在屏幕上, 你只需要两 行代码来建立它。如果用户单击一个按钮,则按钮自己会完成一切必要的操作,从更新屏幕 上的外观到调用你程序中的预处理函数。 该函数包含有对该按钮作出相应操作的代码。 MFC 为你处理所有的细节:你建立按钮并告知它特定的处理函数,则当它被按下时,它就会调用 相应的函数。第四部分介绍了怎样使用消息映射来处理事件。例子例子 理解一个典型的 MFC 程序的结构和样式的最好方法是输入一段小程序,然后编译和 运行它。下面的程序是一段简单的“hello world”程序。这对很多 C 程序员都是很熟

14、悉了, 让我们看一下如何用 MFC 方法来实现。如果你是第一次看到这类程序,也许比较难理解。 这没关系,我们后面会详细介绍。现在你只要用 Visual C+ 环境中建立、编译和运行它就 可以了。 /hello.cpp#include / 说明应用程序类 class CHelloApp : public CWinApp public: virtual BOOL InitInstance(); ;/ 建立应用程序类的实例CHelloApp HelloApp;/ 说明主窗口类 class CHelloWindow : public CFrameWnd CStatic* cs; public: CHe

15、lloWindow(); ;/ 每当应用程序首次执行时都要调用的初始化函数 BOOL CHelloApp:InitInstance() m_pMainWnd = new CHelloWindow(); m_pMainWnd-ShowWindow(m_nCmdShow); m_pMainWnd-UpdateWindow(); return TRUE; / 窗口类的构造函数 CHelloWindow:CHelloWindow() / 建立窗口本身 Create(NULL, “Hello World!“, WS_OVERLAPPEDWINDOW, CRect(0,0,200,200);/ 建立静态标

16、签 cs = new CStatic(); cs-Create(“hello world“, WS_CHILD|WS_VISIBLE|SS_CENTER, CRect(50,80,150,150), this); 上面的这段程序如果用 C 来实现,得需要几页的代码。这个简单的例子做了三件事。 第一,它建立了一个应用程序对象。你所编写的每个 MFC 程序都有一个单一的程序对象, 它是处理 MFC 和 Windows 的初始细节的。第二,应用程序建立了一个窗口来作为应用程 序的主窗口。最后,在应用程序的窗口中建立了一个静态文本标签,它包含有“hello world” 几个字。在第二部分中我们会仔细研究这段程序,以理解其结构。 启动 VC+,如果你是刚刚安装好,则你会在屏幕上看到一个带有工具栏的空窗口。如 果 VC+ 已经在该机器上使用过了, 则所显示的窗口可能有些不同, 因为 VC+ 会记忆和 自动重新打开上次使用后退出时的项目和文件。我们需要的是它没有装如任何项目和代码。如果程序启动后弹

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

当前位置:首页 > 办公文档 > 往来文书

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