Event和Message的关系

在Windows编程中,事件是客观存在的,如鼠标按下,而消息是事件的对外表达,是事件的标识,用于程序处理。OS负责感知事件并转化为消息放入消息队列,通过WndProc()进行处理。消息的发送与处理由OS完成,开发者通过On消息()或委托进行事件响应。委托是事件处理程序的函数指针集合,允许触发多个对象的不同操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

也就是实际上调用WndProc()都是由OS完成的 窗口程序的大部分都是OS完成的

因为我们毕竟在它基础上

就是OS有自己的消息队列消息循环

但是当我们 用户(事件发起者)做出了某事件后,比如按下鼠标这一Event,OS会将事件用消息去标识是什么事件

然后作为参数 调用 On消息()。我的理解是这样的 事件是一个客观的源头,消息是事件的一种人为标识,是一个数据结构

作为参数供WndProc()判别和处理 嗯。。

 

“我的理解是:在windows编程中,消息和事件粗略地看确实没有多大差别,但消息是事件的对外表达,或者说事件是消息的源头;在编程实践中它们并不一一对等。事件是客观存在,而消息往往是人为安排的。比如压下鼠标右键是事件,但程序中如果没有安排接收这一事件的表达,就产生不了消息。如果只研究程序能够接纳的部分,那事件和消息就差不多是一回事了,所以有的教科书上直接写着XX事件(消息)如何如何……完全个人管见,供参考,不同意权当我没说!”

委托就是 On事件()   就是On消息()

 

进队消息:用户按下鼠标就客观发生了一个事件:“鼠标被按下了”  OS 感知到这一事件,然后将其事件对应的消息这一数据结构发送给我们窗口类的消息队列然后转换消息啊 分发消息啊其实这些的执行都是windowsAPI都是OS做的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值