C win32 基础学习(三)

上一篇文章我们介绍了什么时winMain函数。本篇将介绍窗口处理函数。

前文

窗口创建过程

  • 定义WinMain函数

  • 定义窗口处理函数(自定义,处理消息)

  • 注册窗口类(向操作系统写入一些数据)

  • 创建窗口(内存中创建窗口)

  • 显示窗口(绘制窗口的图像)

  • 消息循环(获取/翻译/派发消息)

  • 消息处理

正文

窗口处理函数

在这里简单介绍一下什么是窗口处理函数。

简单点说就是处理窗口的函数,在窗口处理函数来处理消息。

LRESULT CALLBACK WindowProc(
HWND hwnd; //窗口的句柄
UINT UMsg; //消息ID
WPARAM Wparam; // 消息的参数
IPARAM Iparam; // 消息的参数
);

大部分参数我们都知道在这里我就不过多介绍了但是其中有一个参数还是要说一下的。

UINT UMsg; //消息的ID  系统产生的消息有很多都是使用消息ID来进行区分的,每一个消息都有一个ID我们根据这个消息ID,对其进行相应的处理。

我们知道窗口处理函数是处理消息的,消息又分为系统消息,和自定义消息,我们自己创建的窗口处理函数,难免有的时候会疏忽一些系统消息,这是我们就需要用到DefWindowProc() 在这里就不免多补充一点知识了。

窗口的关闭

顾名思义,就是关闭窗口。用户单击程序窗口右上角的关闭按钮以后,窗口过程会收到WM_CLOSE消息,DefWindowProc函数会对WM_CLOSE消息进行处理,即调用DestroyWindow函数;DestroyWindow函数完成程序窗口的一些清理工作,然后向窗口过程发送WM_DESTROY消息,DefWindowProc函数不会处理WM_DESTROY消息,因此这个消息需要我们自己处理;我们在WM_DESTROY消息中调用PostQuitMessage函数,PostQuitMessage函数会发送WM_QUIT消息给程序的消息队列;GetMessage函数获取WM_QUIT消息后返回0,从而结束消息循环,程序退出。

卷尾

好了,窗口处理函数大致就简单的了解了一下。可能有点懵。等到后面说完其他的就会很清晰了。

おすすめ

転載: blog.csdn.net/m0_52021450/article/details/129458759