C++ 如何允许在循环中/等待输入时调用低级鼠标回调

问题描述 投票:0回答:1

所以我正在尝试为我之前创建的控制台菜单(使用箭头键和回车键进行控制)创建一个控制台按钮底座(使用低级鼠标钩子)并且两者都可以单独工作但我遇到了几个问题。鼠标钩子需要(据我所知)一个消息循环才能工作,这反过来会阻塞线程,而菜单需要线程不被阻塞,这样它就可以从键盘获取输入并更新屏幕上的菜单。那么我该如何解决这个问题呢?

c++ callback console message-loop
1个回答
1
投票

只需使用单独的线程。在一个线程(即主线程)中运行您的菜单,并在另一个线程中运行鼠标钩子。

否则,您可以在主线程中运行所有内容,只需对消息循环和输入处理进行编码,使其在等待消息/输入到达时不会阻塞线程,让它们定期返回您的代码,以便你可以做其他工作。

© www.soinside.com 2019 - 2024. All rights reserved.