miniGUI中的消息队列

应用程序必须及时处理投递到它的消息队列中的消息,程序一般在 MiniGUIMain 函数中
通过一个消息循环来处理消息队列中的消息。
消息循环就是一个循环体,在这个循环体中,程序利用 GetMessage  函数不停地从消
息队列中获得消息,然后利用 DispatchMessage  函数将消息发送到指定的窗口,也就是调

用指定窗口的窗口过程,并传递消息及其参数。

在 MiniGUI-Threads 版本中, 每个建立有窗口的 GUI 线程都有自己的消息队列, 而且,
所有属于同一线程的窗口共享同一个消息队列。因此,GetMessage  函数将获得所有与
hMainWnd  窗口在同一线程中的窗口的消息。而在 MiniGUI-Processes  版本中只有一个消
息队列,GetMessage  将从该消息队列当中获得所有的消息,并忽略 hMainWnd  参数。一
个消息队列只需要一个消息循环,不管应用程序有多少个窗口,因为 MSG 消息结构中含有

消息的目标窗口句柄,DispatchMessage 函数就可以把消息发送到它的目标窗口。

DispatchMessage 函数所做的工作就是获取消息的目标窗口的窗口过程,然后直接调用
该窗口过程函数对消息进行处理。
窗口过程是一个特定类型的函数,用来接收和处理所有发送到该窗口的消息。每个控件
类有一个窗口过程,属于同一控件类的所有控件共用同一个窗口过程来处理消息。
窗口过程如果不处理某条消息,一般必须把这条消息传给系统进行默认处理。主窗口过
程通常调用 DefaultMainWinProc 来完成消息的默认处理工作,并返回该函数的返回值。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值