TranslateMessage和DispatchMessage作用

本文介绍了Windows消息处理机制中的PostMessage与SendMessage的区别,以及TranslateMessage和DispatchMessage的作用。PostMessage将消息放入消息队列中,而SendMessage则直接发送消息并等待处理结果。TranslateMessage用于将键盘输入转换为字符消息,DispatchMessage则是将消息传递给操作系统进行处理。
PostMessage是将消息放入到窗体的消息队列中,窗体过程需要等待一段时间,以便从队列中取出了消息之后,才处理消息
SendMessage不将消息放入消息队列,而只是把直接让窗体过程处理这个消息,所以消息一般能立刻响应。

TranslateMessage函数是将消息转化成某一个,或更多的消息,比如,当消息循环接收一个WM_KEYDOWN消息时,如果用户按下了字母键,那么TranslateMessage会产生一个WM_CHAR消息,让它跟在WM_KEYDOWN之后放入到消息队列中。

DispatchMessage函数用意是将消息交给操作系统来处理,之后操作系统会根据情况来调用窗体过程来处理消息。
Window窗体中的消息驱动实际上不是一种异步模式,而是同步模式,也就是说只有当DispatchMessage分发的消息被窗体过程处理了之后,才会回到消息循环中的GetMessage函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值