windows为什么要使用消息循环

 所属目录:Java   |   类型:技术问答   |   时间:2007-05-21
 问题:

既然有窗口过程,为什么还要使用消息循环  
  消息循环的作用似乎只有wm_quit被用到了  
  其它的消息好像都是窗口过程处理的

· 网友精彩回答:

发表者:fatalerror99

windows   在界面上是事件驱动的,而消息循环正是事件驱动的底层机制。

发表者:rychushi

过程式的方法当然也能做一部分的窗口环境处理过程,但对于windows这样的巨大的系统,对于程序的运行,消息循环和事件驱动的引入大大提升了效率和编写的方便,想想看如果你要程序在后台运行时用户通过hotkey的消息两种处理的优劣比较在李维的vcl架构一书第一章有详细介绍!可以看看

发表者:jarvisyao

编程和理解方便而产生的开发方式

发表者:jixingzhong

当你在开发的时候  
   
   
  遇到了一些特殊问题的时候  
   
   
  你就明白了............    
   
   
   
   
  由于win   事件驱动特性  
   
  消息循环在一些特殊情况下是处理问题的首选方法........

发表者:junguo

了解一下多任务就可以理解了,同时多个任务,而只有一个cpu,所有窗口的消息都需要这个cpu来处理。除了让各个程序等待,系统发送消息,并没有其它好的方法!

发表者:flood1984

你用什么做开发?  
  建计做做sdk你就知道不是什么都是能让别人帮你搞定的.

发表者:wshcdr

楼主想想如果没有消息循环,那窗口怎么得到消息?  
  消息循环还使得软件有了更好的交互性

发表者:varphone

所有多任务系统无不是采用这种消息机制来实现的  
   
  须然有很多不懂的说法和不同的实施细节,但机制都是一样的。  
   
  这也很符合人类的处事逻辑。

发表者:caozhy

windows   应用程序用侯捷的话说:基于消息,事件驱动。

发表者:wezzai

while   (getmessage   (&msg,   null,   0,   0))  
            {  
                      translatemessage   (&msg)   ;     //转换键盘消息  
                      dispatchmessage   (&msg)   ;       //将消息分发到窗口过程  
            }  
   
          窗口过程也是靠得到消息来响应

发表者:wezzai

并不是很少程序员在这里写过这样的代码.而是你没脱离过集成开发环境去写win32程序.  
  任何win32程序都会有这段代码的.它位于winmain中.消息是先经过dispatchmessage   (&msg)   之后消息才到达wndproc中.  
  你可以在vc里建里一个holle   win程序就可以明白了.  
   
 

发表者:robin97

算了,不说也罢

.
处理 SSI 文件时出错
© 2006-2008 All Rights Reserved