2011-06-29 48 views
1

從輔助線程可以使用TrackPopupMenu嗎?我試圖用TPM_NONOTIFYTPM_RETURNCMD標誌來使用它。是否可以從輔助線程使用TrackPopupMenu?

在我們的代碼中,對TrackPopupMenu的調用立即返回而不顯示菜單,表示用戶取消了菜單。

相同的代碼,從主/ gui線程調用時工作正常。

回答

2

您需要從擁有菜單所附窗口的同一線程運行此操作。

Windows中的線程規則是窗口與創建窗口的線程有親和力。由於TrackPopupMenu接收到一個窗口句柄,因此可以假定它必須從該窗口的線程中調用。在Windows上的實踐(以及我所遇到過的所有GUI框架)中,與GUI有關的所有內容都應該發生在主線程中。

相關問題