文章目录

  • 2.Windows程序和操作系统之间的关系
  • 3.Windows窗口的生命周期如下:
  • 3.3的原则。Windows窗体

1、Windows程序开发过程:

Windows程序分为“程序代码”和“UI资源”两部分,由RC编译器集成为一个完整的EXE文件。

UI资源指的是功能菜单、对话框外观、程序图标、光标形状等等。

这些UI资源的实际内容(二进制代码)是由各种工具生成的,并带有各种扩展,如。ico,。bmp,。cur等等。程序员必须在一个所谓的资源描述文件中描述它们。rc)。

RC编译器(RC.EXE)读取RC文件的描述后,将所有UI资源文件做成一个. RES文件,然后与程序代码结合,就是一个完整的Windows可执行文件。

2.Windows程序和操作系统之间的关系

Windows程序由外部事件驱动。换句话说,程序保持等待(使用while循环),等待任何可能的输入,然后做出判断,然后进行适当的处理。上述“输入”被操作系统捕获,然后以消息(一种数据结构)的形式输入到程序中。

3.Windows窗口的生命周期如下:

1.CreateWindow在程序初始化的过程中被调用,为程序创建一个窗口作为程序的屏幕舞台。CreateWindow会在生成窗口后直接向窗口函数发送wM_CREATE,然后窗口函数可以做一些初始化操作(比如配置内存、打开文件、读取初始数据……)。

2在程序活着的过程中,不断用GetMessage从消息队列中抓取消息。如果这个消息是WM_oUIT,GetMessage将返回0,结束while循环,从而结束整个程序。

3.DispatchMessage在Windows用户模块的协助和监督下将消息分派给窗口功能。消息将在那里被判断和处理。

4.程序连续执行步骤2和步骤3的操作。

5.当用户按下系统菜单中的关闭命令项时,系统发送WM_CLOSE。通常程序的窗口函数不会拦截这个消息,所以由DefWindowProc来处理。

6.接收到WM_CLOSE后,DEF Window Proc调用DestroyWindow清除窗口。销毁窗口本身发送WM_DESTROY。

7.程序对WM_DESTROY的标准响应是调用PostQuitMessage。

8.PostQuitMessage没有别的事做,只是发送WM_QUIT消息,准备在消息循环中获取GetMessage,和步骤2一样,结束消息循环。

3.3的原则。Windows窗体

Windows的三大核心系统:负责窗口对象生成和消息分发的用户模块,负责图像显示和绘制的GDI模块,负责内存、进程和IO管理的内核模块。

想象一下如何在一个像素数组上生成一个窗口对象。其实就是用GDI来绘制窗口,并以一定的频率不断刷新显示在屏幕上。这就是图形界面,有在DOS或Windows DOS模拟器下写图形界面的经验更好理解。因此,实际上用户模块中的窗口生成依赖于GDI模块(包括菜单、滚动条等。,都是GDI画的)。

然后,我们从用户模块和GDI模块来说说Windows窗体原理。

如果您接触过Win32 SDK编程,您应该知道标准Windows窗体的生成过程:

设计窗口类、注册窗口类、创建窗口、显示窗口、启动消息循环泵循环获取消息分发到窗体过程函数处理。

粘贴标准Windows窗体的生成代码:

#include

发表评论

后才能评论