是否可以从辅助线程使用TrackPopupMenu?

时间:2011-06-29 08:10:35

标签: multithreading winapi

是否可以使用辅助线程中的TrackPopupMenu?我正在尝试将其与TPM_NONOTIFYTPM_RETURNCMD标记一起使用。

在我们的代码中,对TrackPopupMenu的调用立即返回,而不显示菜单,表示用户取消了菜单。

从main / gui线程调用时,相同的代码可以正常工作。

1 个答案:

答案 0 :(得分:2)

您需要从拥有菜单附加窗口的同一个线程运行此命令。

Windows中的线程规则是Windows与创建窗口的线程具有亲缘关系。由于TrackPopupMenu收到一个窗口句柄,你可以假设它必须从该窗口的线程中调用。

在Windows(以及我遇到的所有GUI框架)的实践中,与GUI相关的所有内容都应该发生在主线程中。