假设父对话框用SendMessage给子窗口发消息
我用两种方式:
1.父对话框创建一个线程,在线程里面用SendMessage发消息, 子对话框用消息响应函数直接处理消息2.父对话框直接用SendMessage发消息,子对话框在消息响应函数中创建一个线程,在线程中处理消息。哪种方式正确啊?如果我使用第一种方式,在另开的线程里面用SendMessage发消息,那么要求sendmessage返回也应该是另开的那个线程啊,可是为么它在没返回之前还是阻塞主线程后面的代码运行呢? 

解决方案 »

  1.   

    不能用sendmessage会阻塞的,用的话可以使用postmessage,或者父对话框直接给子线程发PostThreadMessage
      

  2.   

    你是说无论哪种方式 只要是sendmessage那就根本不能用吗?
      

  3.   

    回楼上,不是这样的,如果你发送的消息内部含有局部变量的指针,那只能用SendMessage,不然Postmessage会由于传来的的局部变量已经销毁而出错。如果不含有,那无所谓。SendMessage理论上只堵塞调用线程,不会影响主线程的。
      

  4.   

    线程中可以使用SendMessage发送消息到UI
      

  5.   

    应该是把SendMessage另开个线程 还是在消息响应函数里面另开一个线程啊