to chills:
什么意思?

解决方案 »

  1.   

    对是消息循环,你用SDK写过WINDOWS程序就知道了,所有WINDOWS程序都有这一段。
    getmessage是指从WINDOWS的消息队列里取一条消息
    translatemessage是将某些消息作一个翻译,主要是把KEYDOWN的键码译为相应该的字符,即差不多相当于转为KEYPRESS
    dispatchmessage就是根据消息调用消息响应回调函数(在注册窗口类时注册的一个函数)
      

  2.   

    所以说学学SDK还是有好处啊。
      

  3.   

         我想请问一下这个while循环什么时候结束?
              还有没有这段代码行不行?
      

  4.   

    鼠标移到translatemessage和dispatchmessage上按住ctrl,鼠标点击即可看源码。
      

  5.   

       看什么源码啊?只是一个函数load说明,里面什么都没有。
      

  6.   

    while到GET不到MESSAGE时结束,正常情况下,消息队列为空时,GETMESSAGE在等待,当然不是浪费时间的等待,而是CPU去执行其它进程,直到有消息时GETMESSAGE继续,但是当此进程结束时,如WM_CLOSE等关于程序结束的消息都正确处理完了以后,GETMESSAGE就会返回FALSE,这时此消息循环结束,程序退出。
      

  7.   

     to raptor:
     谢谢你的回答,不过我还想问一个问题:如果我在这里没有使用这个while循环语句,是不是
    该窗口不能接收和处理消息,我在这里创建得窗口与delphi自动创建的窗口有何不同呢?
      

  8.   

    不用WHILE?那你的程序在收到第一个消息后就会退出,而一个窗口在显示出来之前,收到的消息少说也有几十个,那样你基本上没可能看到窗口显示,程序就退出了。
    和DELPHI的窗口没有本质的不同,只是DELPHI的窗口实现了消息循环,并处理了很多消息,只是将必要的消息转为事件,让你在事件响应中处理之。