第三章 窗口和消息

 3.1自己的窗口

建立窗口很需呼叫CreateWindow函数.窗口以「消息」的形式接收窗口的输入,窗口也用消息与其它窗口通讯。

程序建立的每一个窗口都有相关的窗口消息处理程序。「Windows给程序发送消息。是指Windows呼叫程序中的一个函数,该函数的参数描述了这个特定消息。这种位于Windows程序中的函数称为「窗口消息处理程序」。Windows通过呼叫窗口消息处理程序来给窗口发送消息。

Windows程序开始执行后,Windows为该程序建立一个「消息队列」。这个消息队列用来存放该程序可能建立的各种不同窗口的消息。程序中有一小段程序代码,叫做「消息循环」,用来从队列中取出消息,并且将它们发送给相应的窗口消息处理程序。

3.2Windows 程序设计的难点
程序的所有实际动作均在窗口消息处理程序中发生。Windows程序所作的一切,都是响应发送给窗口消息处理程序的消息。
窗口中发生的一切都以消息的形式传给窗口消息处理程序。DefWindowProc处理完消息后会产生其它的消息。

队列化消息与非队列化消息:
队列化的消息被「发送」给消息队列,而非队列化的消息则「发送」给窗口消息处理程序。

windows应用程序和windows系统都有自己的消息队列,所有针对特定应用程序的消息其中既有被系统处理过的(队列化消息),

  也有未经过系统消息队列的(非队列化消息)。  
  队列化消息一般都会经过系统的包装处理,非队列化消息没有这样的经历。  

 

消息与硬件的中断不同。在一个窗口消息处理程序中处理消息时,程序不会被其它消息突然中断。消息循环和窗口消息处理程序不是并发执行的。当一个消息循环从其消息队列中接收一个消息,
 然后呼叫DispatchMessage将消息发送给窗口消息处理程序时,直到窗口消息处理程序将控制传回给Windows,
 DispatchMessage才能结束执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的横打

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值