到底什么是消息循环,是不是专门的一个线程来负责接收消息?
while (GetMessage (&msg, NULL, 0, 0))
     {
          TranslateMessage (&msg) ;
          DispatchMessage (&msg) ;
     }
     return msg.wParam ;这段代码究竟是谁来执行?是创建窗口的线程吗?
我概念有点问题,麻烦教教,谢谢 

解决方案 »

  1.   

    不是"专门的线程." 你可以看一下,一个最简单的SDK程序没有另外开线程,只有一个系统为它创建的主线程.在这里接收消息,处理消息. 你找一下"深入浅出MFC"里面的 图1-2.
      

  2.   

    每一个线程如果有需要的话,系统就会为这个线程建立一个消息队列,而线程中通过
    while (GetMessage (&msg, NULL, 0, 0))...
    这段代码从消息队列中取得消息。
    这段代码由谁来执行这个问题楼主一定是糊涂了,当然是写在什么地方,就由谁来执行了,你写在主线程的消息循环当然由主线程来执行,写在另一个线程中的消息循环自然由这个线程来执行了。
    感觉楼主将消息队列和消息循环弄混淆了。
      

  3.   

    我不知道该放哪
    在问下,是不是就是创建窗口的那个线程?
    DispatchMessage (&msg) ;这到底是干嘛的?
    谢谢
      

  4.   

    http://www.sunxin.org/video/vc.htm
    看孙鑫老师的第一讲,可以在线观看,也可以下载下来看。