我在动态库中向主程序发送了一个自定义的关闭文档的消息,然后在主程序中的关闭文档的函数中又发送了一个存盘的消息。第一个消息发送成功了,也调用了关闭文档的函数,但第二个发送的存盘消息就没有执行。哪位大侠知道这是为什么,是不是同时向主窗口发送了两个消息,但第一个消息还没有执行完毕,第二个消息也不会执行(两次都是用的sendmessage)?该如何解决?

解决方案 »

  1.   

    应该不是这个问题,sendmessage是个堵塞函数,消息响应函数执行完SendMessage才返回,你应该在消息响应函数加断点调试,看看是什么原因
      

  2.   

    第一个消息还没有执行完毕,是这个原因。
    如果一定要在消息执行中等待其他消息执行的话,可以在等待中加上(参数略)
    if(GetMessage())
    {
    TranslateMessage();
    DispatchMessage();
    }
      

  3.   

    应该不是这个问题,sendmessage是个堵塞函数,消息响应函数执行完SendMessage才返回.
      

  4.   

    为何要在关闭文档后存盘呢??
    这是设计问题,SendMessage是依次执行的,文档关闭后不存盘是正确的
    你应该使你的代码尽可能符合习惯而不是绕过去解决,这样在后面可能会造成更多的问题