Page 251~254 Win32 GUI项目,第二次分析

news2024/9/25 12:30:01

11行,本程序要创建的窗口的窗口过程(回调函数),就是窗口用于处理消息的过程,返回值的类型是一个宏定义,即LRESULT,当操作系统分派消息给本窗口时,回调此函数,处理消息。

14行,使用全局变量定义一个窗口类名字

四个参数的含义分别是

21行,声明窗口的句柄

22行,声明一个操作做系统传递给窗口的消息结构体

23行,声明一个窗口类的对象wincl(仍然是类)

26~40行,初始化窗口类对象的各个成员的值。其中28行,表明了,处理本窗口类wincl的消息的函数是WindowProcedure

43行,箱操作系统注册这个窗口类,相当于告诉操作系统,我要用“CodeBlocksWindowsApp"命名来创建一个窗口,这个窗口的消息都传递给WindowProcedure这个函数

窗口类已经注册到到操作系统了,

47~60行,创建蹦窗口,返回本窗口的句柄hwnd。

63行,把窗口展示出来,入参是窗口的句柄,和一个命令(WinMain函数的参数)

66~71行,消息循环,

GetMessage源源不断地获取属于当前进程的消息,

然后通过TranslateMessage做必要的转换,

再调用DispatchMessage将它们正确地分派给本进程内的窗口,然后窗口再发给本窗口的回调函数WindowProcedure

75行,返回消息的处理结果

81行,窗口过程函数

83行,根据操作系统发来的消息,对消息进行分类

85行,如果发来的消息是一个WM_DESTROY(窗口销毁消息),则调用PostQuitMessage (0),关闭窗口,然后退出switch

88行,如果发来的消息没有对应的处理方法,则采用默认处理方法,不处理。

所以,我们写GUI程序,首先应该在83~90行的switch / case循环中,添加我们想收到,想处理的消息类型,再写该消息的处理方法。

最后,再看一眼,窗口处理过程函数WindowProcedure的四个入参的意义:

窗口运行效果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1439875.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之ScrollBar组件

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之ScrollBar组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、ScrollBar组件 鸿蒙(HarmonyOS)滚动条组件ScrollBar&…

常见的ANSI转义码

ANSI 转义码是一组控制码,用于在文本中添加格式化和颜色。这些码以 ESC(Escape)字符为开头,通常是 \x1b,后面紧跟着一系列参数和指令。在 ANSI 标准中,这些码通常用于控制终端的文本输出。 下面是一些常见…

20240207大盘数据分析

先上图: 图1,涨跌分布 图1 涨跌数量分布 图2 各大指数涨跌分布 数据分析一下: 上证指数和深证指数是很宽的综合指数,上证指数有2162个上交所股票。深证指数有500个深交所股票。这两目前没有纳入救市范围。 比较有特点的是 上…

6个好看的wordpress模板

简站wordpress服务业通用主题 2023年立秋纪念版,简站wordpress服务行业通用主题,适合服务行业企业官网使用。 https://www.jianzhanpress.com/?p5393 小语种翻译wordpress主题 小语种国家外贸网站建设需要的wordpress主题模板,适合做小语…

使用异步命名管道通信的实例

记录一个使用异步命名管道通信的实例。代码参考了 MSDN 的文档&#xff1a;使用完成例程的命名管道服务器 - Win32 apps | Microsoft Learn。 服务端代码 #include <windows.h> #include <stdio.h> #include <tchar.h> #include <strsafe.h>#define…

相机图像质量研究(5)常见问题总结:光学结构对成像的影响--景深

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…

ansible shell模块 可以用来使用shell 命令 支持管道符 shell 模块和 command 模块的区别

这里写目录标题 说明shell模块用法shell 模块和 command 模块的区别 说明 shell模块可以在远程主机上调用shell解释器运行命令&#xff0c;支持shell的各种功能&#xff0c;例如管道等 shell模块用法 ansible slave -m shell -a cat /etc/passwd | grep root # 可以使用管道…

Git中为常用指令配置别名

目录 1 前言 2 具体操作 2.1 创建.bashrc文件 2.2 添加指令 2.3 使其生效 2.4 测试 1 前言 在Git中有一些常用指令比较长&#xff0c;当我们直接输入&#xff0c;不仅费时费力&#xff0c;还容易出错。这时候&#xff0c;如果能给其取个简短的别名&#xff0c;那么事情就…

航芯ACM32G103开发板评测 08 ADC Timer外设测试

航芯ACM32G103开发板评测 08 ADC Timer外设测试 1. 软硬件平台 ACM32G103 Board开发板MDK-ARM Keil 2. 定时器Timer 在一般的MCU芯片中&#xff0c;定时器这个外设资源是非常重要的&#xff0c;一般可以分为SysTick定时器&#xff08;系统滴答定时器&#xff09;、常规定时…

如何利用IP定位技术锁定网络攻击者

在当今高度互联的数字世界中&#xff0c;网络安全威胁日益猖獗。为了维护网络空间的安全与稳定&#xff0c;追踪并锁定网络攻击者成为了关键一环。而IP定位技术&#xff0c;作为一种重要的追踪手段&#xff0c;正发挥着越来越重要的作用。 IP定位技术&#xff0c;简而言之&…

读懂 FastChat 大模型部署源码所需的异步编程基础

原文&#xff1a;读懂 FastChat 大模型部署源码所需的异步编程基础 - 知乎 目录 0. 前言 1. 同步与异步的区别 2. 协程 3. 事件循环 4. await 5. 组合协程 6. 使用 Semaphore 限制并发数 7. 运行阻塞任务 8. 异步迭代器 async for 9. 异步上下文管理器 async with …

JavaScript基础第六天

JavaScript 基础第六天 今天我们学习数组的遍历&#xff0c;以及数组的其他用法。 1. 数组遍历 1.1. 古老方法 可以使用 for 循环进行遍历。 let arr ["a", "b", "d", "g"]; for (let i 0; i < arr.length; i) {console.log…

JUnit实践教程——Java的单元测试框架

前言 大家好&#xff0c;我是chowley&#xff0c;最近在学单元测试框架——JUnit&#xff0c;写个博客记录一下&#xff01; 在软件开发中&#xff0c;单元测试是确保代码质量和稳定性的重要手段之一。JUnit作为Java领域最流行的单元测试框架&#xff0c;为开发人员提供了简单…

“bound drug/molecule”or “unbound drug/molecule”、molecule shape、sketching是什么?

“bound drug/molecule”or “unbound drug/molecule” For clarity, the following terms will be used throughout this study: “bound drug/molecule” (or “unbound drug/molecule”) refers to the drug/molecule that is bound (or unbound) to proteins [48]. 意思就是…

【前端web入门第五天】01 结构伪类选择器与伪元素选择器

文章目录: 1.结构伪类选择器 1.1 nth-child(公式) 2.伪元素选择器 1.结构伪类选择器 作用:根据元素的结构关系查找元素。 选择器说明E:first-child查找第一个E元素E:last-child查找最后一个E元素E:nth-child(N)查找第N个E元素&#xff08;第一个元素N值为1) 一个列表结构…

Vue中路由守卫的详细应用

作为一名web前端开发者&#xff0c;我们肯定经常使用Vue框架来构建我们的项目。而在Vue中&#xff0c;路由是非常重要的一部分&#xff0c;它能够实现页面的跳转和导航&#xff0c;提供更好的用户体验。然而&#xff0c;有时我们需要在路由跳转前或跳转后执行一些特定的逻辑&am…

代码随想录Day44 | 完全背包 518 零钱兑换II 377 组合综合IV

代码随想录Day44 | 完全背包 518 零钱兑换II 377 组合综合IV 完全背包52.携带研究材料518.零钱兑换II377.组合总和Ⅳ 完全背包 文档讲解&#xff1a;代码随想录 视频讲解&#xff1a; 状态 物品的个数是无限个&#xff0c;即一个背包里可以存在同种物品。唯一区别就是遍历顺序…

【MySQL进阶之路】BufferPool底层设计(上)

欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术的推送&#xff01; 在我后台回复 「资料」 可领取编程高频电子书&#xff01; 在我后台回复「面试」可领取硬核面试笔记&#xff01; 文章导读地址…

【快速上手QT】02-学会查看QT自带的手册QT助手

QT助手 为什么大家都说QT简单&#xff0c;第一点就是确实简单&#xff08;bushi&#xff09;。 我个人觉得最关键的点就是人家QT官方就给你准备好了文档&#xff0c;甚至还有专门的IDE——QtCreator&#xff0c;在QTCreator里面还有很多示例代码&#xff0c;只要你会C的语法以…

飞马座卫星

1960年代马歇尔太空飞行中心的历史显然与建造土星五号月球火箭有关。然而&#xff0c;鲜为人知的是该中心在设计科学有效载荷方面的早期工作。 Fairchild 技术人员正在检查扩展的 Pegasus 流星体探测表面。Pegasus 由马里兰州黑格斯敦的 Fairchild Stratos Corporation 通过马歇…