每个线程是不是都有消息队列啊!ms的消息队列的指针放在线程核心数据块中吗?

解决方案 »

  1.   

    sinall的叙述不正确1 在MFC中,CCmdTarget的子类拥有消息队列
    2 只要注册并实现了消息循环的线程,都拥有消息队列
    3 消息队列的指针包含在每个线程持有的THREADINFO结构中参考《Windows核心编程》第26章
      

  2.   

    如果只有UI有,那么这个消息队列的指针放在哪呢,GetMessage怎么知道到哪去取呢
      

  3.   

    什么啊!SendMessage的HWND指定HWND_BROADCAST就好了,要什么线程号啊!
      

  4.   

    每个进程可有一个或多个线程;每个线程只有一个消息队列;一个线程可以有多个窗口,这多个窗口共享同一个消息队列.
    在windows中可以同时存在任意数目的窗口,但基本的消息队列只有两种.系统队列(System Queue)和线程消息队列(thread-specific message queue).系统队列被整个系统所共享,系统队列在一个Windows系统中有且仅有一个.而每一个GUI线程都拥有一个线程消息队列.
    windows系统中为了避免系统过载,所以并不为非GUI线程创建消息队列.系统仅当线程第一次调用Win32 User或者GDI函数时创建一个线程消息队列.键盘事件和鼠标事件被系统捕获后被翻译成相应的消息放入系统消息队列,在由系统判断消息应该属于那个窗口,并将这条消息发至相应的线程.当线程的消息对列收到这条消息后用DispatchMessage函数将消息传递到相应窗口的WindowProc