是否可以使用辅助线程中的TrackPopupMenu
?我正在尝试将其与TPM_NONOTIFY
和TPM_RETURNCMD
标记一起使用。
在我们的代码中,对TrackPopupMenu
的调用立即返回,而不显示菜单,表示用户取消了菜单。
从main / gui线程调用时,相同的代码可以正常工作。
答案 0 :(得分:2)
您需要从拥有菜单附加窗口的同一个线程运行此命令。
Windows中的线程规则是Windows与创建窗口的线程具有亲缘关系。由于TrackPopupMenu收到一个窗口句柄,你可以假设它必须从该窗口的线程中调用。
在Windows(以及我遇到的所有GUI框架)的实践中,与GUI相关的所有内容都应该发生在主线程中。