如果事件是WM_MOVE,为什么我的线程在WaitMessage之后恢复?

时间:2015-01-07 15:37:59

标签: windows wine

在Windows中,如果存在WaitMessageWM_MOVE消息,则WM_ACTIVATE函数上的线程已恢复,即使这些消息是没有排队(即,我不会用PeekMessage获得它们。)

问题是这种行为是否与文档一致,因为在Wine中运行时,我观察到的行为是不同的,线程被激活但是没有恢复它是否已经睡眠,而是直接调用WinProc。 / p>

修改 让我重新说一下,问题就变得更清楚了:

  1. 我的主题发送WaitMessage
  2. 用户触摸应用程序窗口,因此操作最终会触发VM_MOVE
  3. 我看到两种可能性:

    1. 线程在WaitMessage
    2. 之后立即恢复
    3. 线程已使用WndProc激活,即不在WaitMessage
    4. 之后

      这些是否描述了实际行为?另外,如果我立即拨打PeekMessage,我应该收到1吗?

      鉴于WM_MOVE不是排队的消息而且WaitMessage等待消息排队,是否应该唤醒该线程?如果是,是应该在WaitMessage之后立即恢复,还是应该直接调用WndProc

      我问的原因是因为我似乎在Windows和Wine中遇到了两种不同的行为。在Windows中,线程在WaitMessage之后立即恢复,在Wine中,线程在WndProc中激活。

0 个答案:

没有答案