请问在一个thread中创建多个窗体后, 每个窗体都有自己的消息队列及消息循环吗?我觉得一个thread中只会有一个消息队列,但包含多个窗体就不清楚了。谢谢大家!

解决方案 »

  1.   

    1.消息队列是属于线程的2.一个线程最多有一个消息队列
    可以为0,可以为1,
    MSG结构有个HWND成员
    一个线程分发消息不会受多界面的影响
      

  2.   

    我好像明白了,不知对不对,请指正,谢谢:一个Thread只能有一个消息队列,而由这个thread创建的窗体都各自有一个WndProc(),
    PostMessage(PostMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam))的时候消息Msg先传递到线程的消息队列,并由这个线程的消息循环将该消息分发到hWnd对应的窗体的WndProc()来处理。
      

  3.   

    一个线程最多有一个消息队列,但可以有多个消息循环。
    GetMessage(&msg, NULL, 0, 0);这样的循环,多个窗口都可响应。
    GetMessage(&msg, hwnd, 0, 0);只有一个窗口能响应。
    模态对话框就是建立局部的消息循环来阻断主循环。