[править]
Это лучше.
Если вы укажете TPM_RETURNCMD в параметре uFlags, возвращаемое значение будет идентификатором пункта меню элемента, выбранного пользователем. Если пользователь отменяет меню без выбора или возникает ошибка, возвращаемое значение равно нулю.
Цикл меню заканчивается, когда :: TrackPopupMenu () возвращает :)
Если был выбран пункт меню, то окно, в котором HWND передан как шестой параметр, получит сообщение WM_COMMAND с идентификатором выбранного элемента. Вероятно, вы можете :: PeekMessage () после :: TrackPopupMenu () вернуться, чтобы увидеть, находится ли WM_COMMAND в очереди.
Если вы хотите получать уведомления, находясь в :: TrackPopupMenu (), вы можете обрабатывать WM_EXITMENULOOP.