1
從輔助線程可以使用TrackPopupMenu
嗎?我試圖用TPM_NONOTIFY
和TPM_RETURNCMD
標誌來使用它。是否可以從輔助線程使用TrackPopupMenu?
在我們的代碼中,對TrackPopupMenu
的調用立即返回而不顯示菜單,表示用戶取消了菜單。
相同的代碼,從主/ gui線程調用時工作正常。
從輔助線程可以使用TrackPopupMenu
嗎?我試圖用TPM_NONOTIFY
和TPM_RETURNCMD
標誌來使用它。是否可以從輔助線程使用TrackPopupMenu?
在我們的代碼中,對TrackPopupMenu
的調用立即返回而不顯示菜單,表示用戶取消了菜單。
相同的代碼,從主/ gui線程調用時工作正常。
您需要從擁有菜單所附窗口的同一線程運行此操作。
Windows中的線程規則是窗口與創建窗口的線程有親和力。由於TrackPopupMenu接收到一個窗口句柄,因此可以假定它必須從該窗口的線程中調用。在Windows上的實踐(以及我所遇到過的所有GUI框架)中,與GUI有關的所有內容都應該發生在主線程中。