标题:Windows程序中的消息循环方法
取消只看楼主
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
 问题点数:0 回复次数:1 
Windows程序中的消息循环方法
Windows程序通常也是这样:

    while (int ret=GetMessage(&sMsg, NULL, 0, 0)) {        // 消息循环
        if (ret != -1) {
            TranslateMessage(&sMsg);
            DispatchMessage(&sMsg);
        }
    }

这就是说TranslateMessage(&sMsg)起 等待信号作用,而DispatchMessage(&sMsg)起处理信号作用
但是我有个疑问,这个 等待信号 函数是怎么实现的?
不会是这个等待信号 TranslateMessage函数就是将CPU挂起
而DispatchMessage函数就相当一个中断函数,在有消息的时侯,产生一个中断信号
从而退出挂起状态,转而执行 信号处理??
搜索更多相关主题的帖子: Windows 
2008-09-20 23:02
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
得分:0 
回复 2# Arcticanimal 的帖子
哦,您的意思是他们由各自的分工:
TranslateMessage 处理键盘输入
而 DispatchMessage 处理除了键盘输入信号之外的消息?
2008-09-21 10:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-234308-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.824449 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved