什么是事件和消息?
Windows事件就是一个"动作",而消息则是用来描述这些"动作"的
具体实现

首先当用户触发了一个动作(即为用户输入),这个动作就会进入一个系统队列,这里的队列就是数据结构中的队列,即先进先出。
先出来的消息判断属于哪个窗口的,然后进入对应的应用程序队列。然后应用程序从这个队列中取出消息进行判断,是它关心的就进行处理(例如QQ聊天窗口的发送、拖动窗口,关闭窗口等功能),若不是它关心的就丢给操作系统,让它进行处理(例如单击一下QQ聊天窗口中的空白区域)
而消息循环则是不断地从队列里面取出消息
底层实现逻辑
1.系统或者用户触发"动作"
2.系统将这些信息存储到MSG结构体中
3.系统将这些消息存储到相关的应用程序队列中
4.消息循环
创建窗口程序的步骤代码
1.创建窗口类
先用WNDCLASSW创建一个myClass对象,然后初始化窗口的类名和回调函数
WNDCLASSW myClass = {
0 };
myClass.lpszClassName = L"Allure_Love";
myClass.lpfnWndProc = WindowProc;
在创建窗口类的时候有这样一行代码:

如果写成这样,虽然编译时不会报错,但是我们写的窗口也不会运行出来
WNDCLASSW myClass;
myClass.lpszClassName = L"Allure_Love";
myClass.lpfnWndProc = WindowProc;
查阅文档后会

文章详细解释了Windows中事件和消息的概念,以及它们如何在系统和应用程序中交互。用户触发的动作形成事件,进入系统队列,然后分配给相应窗口进行处理。消息循环负责不断从队列中取出并处理消息。文章还介绍了创建窗口的步骤,包括窗口类的创建、注册,窗口的创建和显示,以及消息的翻译和分发。最后,回调函数WindowProc在其中起到关键作用,处理特定的消息并使用DefWindowProc处理未处理的消息。
最低0.47元/天 解锁文章
1811

被折叠的 条评论
为什么被折叠?



