(1)Window编程模型及MFC类表(MFC学习)

来源:互联网 发布:炫舞辅助源码 编辑:程序博客网 时间:2024/06/06 04:50

从传统的Windows编程环境如C和Windows SDK进人MFC编程的,那么您已经熟悉了许多使用MFC编写Windows程序时需要理解的概念。但是如果是从面向字符的环境如MS-DOS或UNIX进人的,您将会发现Window编程完全不同于您以前所做的工作。


为传统操作系统编写的程序使用的是过程化的模型程序从头到尾按顺序执行。每次程序调用从开始到结束所经的路径可能会不同,这是由于程序所接收的输人或运行的条件不同,但路径本身是可预测的。c程序从第1行带有main函数的语句开始执行,到main函数返回值结束。在首尾行之间,main函数还会调用其他函数,而这些函数可能会调用更多的函数,但始终是程序而不是操作系统决定何时调用哪个函数。

windows程序则不是这样执行的。它们使用如下图所示的事件驱动编程模型,应用程序通过处理操作系统发送来的消息来响应事件。事件可能是一次击键、鼠标单击或是要求窗口更新的命令以及其他事情。windows程序的进人点是函数WinMain,但是大多效操作是在称为窗口过程的函数中进行的。窗口过程函数处理发送给窗口的消息。Winmain函数创建该窗口并进人消息循环,即获取消息或将其调度给窗口过程。消息被检索之前处于消息队列中等待。一个典型的应用程序的绝大部分操作是在响应它收到的消息,除了等待下一个消息到达以外,它几乎什么也不做。



图 Windows编程模型

WM_QUIT消息通知应用程序该结束了,该消息在消息队列中被检索到之后,消息循环将停。此消息通常在以下几种情况出现:当用户从“文件”菜单选择“退出”命令;单击了“关闭”按钮;或是从窗口系统菜单选择了“关闭”命令.在消息循环停止后,WinMain函数返回,应用程序结束.

窗口过程一般要调用其他函数来帮助处理接收到的消息。它可以调用应用程序自己的函数,也可以凋用Windows提供的API函数。API函数包含在动态链接库(DLL)这样的专门模块中。Win32包含成千上万个函数,应用程序可以调用它们执行多种任务,例如:创建一个窗口、画条线,以及对文件进行输人/输出处理。在C语言中,窗口过程一般作为一个巨大的函数实现,该函数包含一个很大的switch语句为每个消息都提供一个选项.处理特定消息的程序代码被称为消息处理程序。应用程序不能处理的消息被传递给了名为DefWindowProc的API函数,该函数对未被处理的消息提供默认响应。消息以调用一个窗口的窗口过程的形式来表明自已的存在。






0 0
原创粉丝点击