欢迎来到天天文库
浏览记录
ID:51491839
大小:552.37 KB
页数:20页
时间:2020-03-25
《VISUALC++MFC扩展编程实例1.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、下载第一部分基础无论读者是否已经读过本系列的书籍,或者已经具备了多年的编程经验,我们仍将在这一部分回顾一下所需要的基本知识,其目的就在于能够使读者更好地理解本书的实例。编写程序常常是一种需要尝试不同方法以达到最终目的的工作。通常情况下,了解用MFC来做什么涉及到对4个基本概念的理解:WindowsAPI怎样创建窗口;MFC如何封装并改进WindowsAPI;MFC如何与窗口通信以及MFC是怎样控制绘图任务的。除了这些概念以外,本部分还将讨论一下工具栏和状态栏。最后我们将讨论一下MFC如何同非Windows构件进行通信,如串行口和Internet站点。本部分包括的章节介绍如下。第1章概述本章概
2、述MFC如何封装并改进WindowsAPI。如果读者已经阅读过本系列书籍的前一本,将会发现该章是对那些版本基础部分的一些回顾。本书包含这一章是为了保持本书对高层次读者的独立性。第2章控件条本章将讨论MFC支持的控件条。标准的控件条包括工具栏、状态栏和伸缩条(Rebar)等。MFC增加了对话条和停靠栏。该章还要探讨MFC如何避免控件条之间以及它们和视之间互相覆盖的技术内幕。第3章通信本章讨论应用程序与外部世界的不同通信方式。其中最基础的窗口消息将在第一章中讨论。本章还涉及其他一些通信途径,包括局域网、Internet通信、串行和并行端口、DDE、Windows挂钩和管道等。第1章概述本章将回顾
3、Windows应用程序的基本知识,包括应用程序如何创建窗口、窗口之间如何进行对话以及如何在窗口内绘图。然后将讨论微软基础类库(MFC)以及DeveloperStudio怎样使创建窗口应用程序的工作变得容易起来。1.1Windows基础当Windows操作系统启动应用程序时,它首先创建一个程序线程,该线程一般只是一个2第第第一部分第基础下载可执行内存的管理模块,而这些内存则与系统中其他应用程序分享执行时间。如果这个应用程序要通过显示屏幕与用户交互,那么这个程序线程便需要负责创建显示在屏幕上的窗口。程序线程通过调用操作系统的应用程序编程接口(API)来创建这些窗口。实际调用的函数是::Creat
4、eWindowEx(),这个函数需要下列参数:屏幕位置、窗口大小以及即将创建的窗口的风格。1.1.1窗口类结构线程创建的多数窗口具有类似的风格(例如按钮),这些类似的风格已经被集成为一个名为窗口类(WindowsClass)的结构。注意这是一个结构,而不是一个C++类。在创建窗口时必须设定窗口类。也可以使用其他的窗口风格,并且分别设定各自的窗口类结构。1.1.2消息如果用户单击了一个窗口,操作系统就会向这个窗口发送一个消息来把这一事件通知给它。每个窗口用自己的窗口处理过程来处理窗口消息,举个例子,一个按钮的窗口处理过程可能向它的主窗口发送一个消息告诉它需要做什么事情。每个窗口的处理过程还负责
5、在屏幕上绘制属于自己的窗口。操作系统在绘制窗口时会向目标窗口发送WM_PAINT消息。所有类似的窗口具备同样的窗口处理过程,例如,所有的按钮控件使用同样的窗口处理过程,因此所有的按钮看起来外表都很类似,其行为也类似。这种情况下的窗口处理过程位于操作系统内。它的地址在窗口的窗口类结构内指定。所有的按钮控件都由同样的窗口类创建,这个窗口类结构的名字叫做BUTTON。1.1.3客户区和非客户区窗口处理过程在屏幕上绘制一个窗口时实际上绘制了两个部分:客户区和非客户区。为了绘制非客户区(nonclientarea),窗口处理过程总是调用所有窗口过程都需要调用的相同的操作系统处理过程。该过程接下来还需要
6、绘制框架、菜单条以及标题栏等等多数窗口共同具有的内容。过程所绘制的东西取决于窗口的风格。例如,由于按钮的风格被指定为不用绘制其非客户区,所以按钮窗口上就不会看见框架和菜单。窗口的客户区(clientarea)总是由窗口自己的窗口处理过程绘制,也可能由操作系统来完成这件事,例如所有的按钮都由同样的处理过程来绘制,或者由创建者自己来绘制图像或列表。1.1.4重叠窗口、弹出窗口和子窗口除了窗口类以外,还有成百上千种窗口风格供用户指定窗口的绘制及其行为。其中有3种最重要的风格创建了对应3种最基本的窗口类型:重叠窗口、弹出窗口和子窗口。■重叠窗口(overlappedwindow),具有应用程序主窗口
7、的全部特点。它的非客户区包括一个可伸缩的框架、菜单条、标题栏和最小化、最大化按钮。■弹出窗口(popupwindow),具有消息框或者对话框的全部特点。它的非客户区包括一个固定大小的框架和一个标题栏。第1章第概第第述第第3下载■子窗口(childwindow),具有类似按钮控件的全部特点。它没有非客户区,窗口的处理过程负责绘制窗口的每个部分。这些窗口在其行为上表现不同,这将在以后讨论。1.1.5父窗口和宿主窗
此文档下载收益归作者所有