欢迎来到天天文库
浏览记录
ID:39994699
大小:1.13 MB
页数:69页
时间:2019-07-16
《windows编程与mfc原理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章Windows编程与MFC原理本讲主要内容1.Windows编程基础2.MFC基础3.MFC应用程序框架4.MFC消息机制7.1Windows编程基础Windows是一个多任务的图形用户界面操作系统,要想学习和熟练掌握Windows应用程序的开发,需要理解Windows平台下应用程序的运行机制。Windows应用程序与DOS应用程序有很大的区别7.1Windows编程基础Windows应用程序与DOS应用程序有很大的区别:DOS应用程序的用户界面是字符方式的,内部采用顺序执行过程和中断机制来控制程序流程。Windo
2、ws应用程序基于事件驱动和消息响应,用户界面由窗口等图形元素构成,内部采用消息处理机制。7.1.1WindowsAPI函数Windows操作系统提供了上千个函数、宏、消息和数据结构的定义,称为应用程序编程接口(ApplicationProgrammingInterface,API)函数。WindowsAPI函数定义在动态链接库中,主要有User32.dll、Gdi32.dll和Kernel32.dll。在调用API函数时,必须使用#include命令将Windows.h文件包含到应用程序中来。7.1.2窗口与句柄窗口是W
3、indows应用程序中一个重要的元素,它是应用程序与用户交互的接口。一个Windows应用程序至少要有一个窗口,称之为主窗口。一个应用程序窗口由标题栏、菜单栏、系统菜单、最大(小)化按钮、边框和滚动条等构成。按照区域划分窗口分为客户区和非客户区,客户区是一块独立的区域,应用程序通常在客户区中显示文字或者绘制图形。7.1.2窗口与句柄Windows使用句柄(handle)来标识应用程序中不同的对象实例。由于Windows系统中对象的类型很多,主要有应用程序实例、窗口、菜单、文件、输出设备、位图、光标、GDI画笔等,要使用多
4、种类型的句柄来标识对象。句柄是一个4个字节的数值,常用的句柄类型及说明如表7-1所示。7.1.2窗口与句柄句柄类型说明句柄类型说明HWND窗口句柄HPEN画笔句柄HDC设备环境句柄HMENU菜单句柄HBITMAP位图句柄HFILE文件句柄HCURSOR光标句柄HPALETTE调色板句柄HICON图标句柄HINSTANCE运行实例句柄HFONT字体句柄HLOCAL局部内存对象句柄HBRUSH画刷句柄HGLOBAL全局内存对象句柄7.1.2窗口与句柄句柄实际上是Windows在内存中维护的一个对象内存物理地址列表的整数索引,
5、而不是对象的地址指针。因为Windows的内存管理经常会将空闲对象的内存释放掉,当需要访问时再重新提交到物理内存,所以对象的物理地址是变化的,不允许程序直接通过物理地址来访问对象。程序将需要访问对象的句柄传递给系统,系统根据句柄检索对象列表从而获得对象及其物理地址。7.1.3事件与消息Windows应用程序采用的是事件驱动的设计模式,其处理的目标对象是消息。所谓消息(message)就是描述某个事件发生的信息,而事件(event)是用户操作应用程序产生的动作或者Windows系统自身产生的动作。只要有事件发生,系统就会产
6、生特定的消息。例如,用户按下键盘就会产生一个键盘事件,同时系统会生成一条对应的键盘消息。7.1.3事件与消息Windows系统采用消息队列来管理事件对应的消息。如图7-1所示,每个应用程序都维护着自己的消息队列,当某种事件发生时,Windows会判断当前事件属于哪个程序,然后将事件产生的消息加入到该程序的消息队列中。应用程序监测自己的消息队列,提取需要处理的消息并处理,其他消息则由默认的窗口函数DefWindowProc()处理,该函数将程序不处理的消息发给Windows操作系统。7.1.3事件与消息7.1.3事件与消息
7、Windows系统中有很多种不同的消息,可以分为:窗口消息、命令消息和控件通知消息。窗口消息一般与窗口内部运行有关,如创建窗口,绘制窗口,销毁窗口等,通常消息是由系统发送到窗口,或由窗口发送到系统。窗口消息名以WM_为前缀,如窗口移动消息名是WM_MOVE7.1.3事件与消息命令消息是以WM_COMMAND为消息名,在消息中包含有命令的标识符(ID),以区分具体的命令。命令消息的来源主要由以下几种:(1)用户选择某菜单项,要产生相应的菜单命令消息。(2)用户按下某工具栏按钮产生相应的工具栏命令消息。(3)用户在键盘上按下
8、加速键也将产生相应的加速键命令消息。7.1.3事件与消息控件通知消息是由控件窗口发送到父窗口的一种消息。控件通知消息只适用于标准的窗口控件,如按钮、列表框、组合框、编辑框,以及Windows公共控件如树状视图、列表视图等。单击或双击一个控件、在控件中选择部分文本、操作控件的滚动条等都会产生控件通知消息。7.1.3事件
此文档下载收益归作者所有