2010-03-17 14 views
1

我正在顯示一個使用TrackPopupMenu的彈出式菜單,並想知道何時通過點擊它的方式將其解除。我瀏覽了所有的菜單功能,但在這方面沒有找到任何有用的東西。 Spy ++告訴我,在這種情況下不會發送窗口消息。是否有任何簡單的方法來確定何時彈出菜單被解僱?

那麼,有沒有簡單的方法來做到這一點,而無需安裝鼠標鉤?謝謝!

回答

3


這樣比較好。 如果在uFlags參數中指定TPM_RETURNCMD,則返回值是用戶選擇的項目的菜單項標識符。如果用戶在不做選擇的情況下取消菜單,或者發生錯誤,則返回值爲零。

當:: TrackPopupMenu()返回時,菜單循環結束: 如果選擇了菜單項,那麼HWND作爲第6個參數傳遞的窗口將收到WM_COMMAND消息,其中包含所選項目的ID。您可以:: :: PeekMessage():: TrackPopupMenu()之後返回以查看WM_COMMAND是否在隊列中。

如果你想在:: TrackPopupMenu()中得到通知,你可以處理WM_EXITMENULOOP。

+0

確實。太簡單了,我沒想到;)謝謝 – 2010-03-17 10:22:34

相關問題