int CMyWinThread::Run()
{
MSG msg;
GetMessage(&msg,NULL,NULL,NULL);
switch(msg.message)
 {case WM_INI:
         ......;
         break;
  case WM_OPEN:
        .....
         break;
}
return CWinThread::Run();
}
在主线程中写:
a=pMyWinThread->PostMessage(WM_INI,0,0);
b=pMyWinThread->PostMessage(WM_OPEN,0,0);
则 a=1,b=0;
a=pMyWinThread->PostMessage(WM_OPEN,0,0);
b=pMyWinThread->PostMessage(WM_INI,0,0);
则 a=1,b=0;
也就是说第二个消息始终不成功,为什么?

解决方案 »

  1.   

    PostMessage发送是否成功好象意义不大.你即使发成功了,也不见得会响应.成功只是表示消息已经进入消息泵,但能不能收到还得看你进程的执行了.
      

  2.   

    int CMyWinThread::Run()
    {
    MSG msg;
    GetMessage(&msg,NULL,NULL,NULL);
    switch(msg.message)
     {case WM_INI:
             ......;
             break;
      case WM_OPEN:
            .....
             break;
    }
    return CWinThread::Run();
    }
    在主线程中写:
    a=pMyWinThread->PostThreadMessage(WM_INI,0,0);
    b=pMyWinThread->PostThreadMessage(WM_OPEN,0,0);
    则 a=1,b=0;
    a=pMyWinThread->PostThreadMessage(WM_OPEN,0,0);
    b=pMyWinThread->PostThreadMessage(WM_INI,0,0);
    则 a=1,b=0;
    也就是说第二个消息始终不成功,为什么?
    我的不成功是指连消息泵都没有进!