【问题标题】:how to prioritize user define messages in a thread?如何在线程中优先考虑用户定义的消息?
【发布时间】:2009-08-28 11:27:17
【问题描述】:

我只有一个线程(Windows 应用程序)接收窗口和用户定义的消息。现在,当用户单击鼠标并按住时,应用程序会锁定。
我该如何解决这个问题?我有一个线程的限制。

【问题讨论】:

    标签: c++ winapi multithreading


    【解决方案1】:

    当用户单击鼠标并按住时,应用程序锁定。

    这不应该发生在标准的消息循环布局中。

    如果你想做一些长时间的操作(比如等待鼠标向上消息),你不能阻塞接收到的消息。

    所以我认为你的问题是WM_LBUTTONDOWN 中的逻辑。只需设置一个标志,不要等待WM_LBUTTONUP 消息。

    【讨论】:

      【解决方案2】:

      您可以将 PeekMessage() 与过滤器一起使用。 GetMessage() 也允许过滤。

      请参阅 MSDN 文档:http://msdn.microsoft.com/en-us/library/ms644943%28VS.85%29.aspx

      【讨论】:

        【解决方案3】:

        尝试查看是否从 wndproc 函数返回正确的值。 如果您没有返回正确的值,则应用程序可能会被锁定。 我认为,在您的情况下,WM_LBUTTONDOWN 事件可能不会返回正确的值.....

        【讨论】:

          猜你喜欢
          • 2021-03-18
          • 1970-01-01
          • 2020-04-20
          • 1970-01-01
          • 2020-12-19
          • 1970-01-01
          • 1970-01-01
          • 2014-05-23
          • 1970-01-01
          相关资源
          最近更新 更多