В любом случае, чтобы остановить приложение Windows перед отображением контекстного меню на значке в трее?


1

Мы испытываем эту неприятную проблему, когда у нас есть контекстное меню на значке нашего трека, если мы отобразим это контекстное меню, у нас есть для SetForegroundWindow и вывести его на передний план. Это действительно раздражает и совсем не то, что мы хотим.

Есть ли обходной путь, я замечаю, что Outlook MS Messenger и другие приложения MS не страдают этим, возможно, они не используют стандартное меню и им пришлось писать свои собственные ... почему они не выпускают этот код, если они иметь?

В данной статье описывается 'как дизайн' поведение: Menus for Notification Icons Do Not Work Correctly

EDIT Мы используем C++/Win32 не формы, поэтому мы используем TrackPopupMenu.

2

Вы используете ContextMenu или ContextMenuStrip?

Ваша поговорка, что открытие ContextMenu на лоткеоне фокусирует все формы приложения?

Я не испытал этого, хотя я использую новый класс ContextMenuStrip, а не ContextMenu для своих лотков.

EDIT: Было бы неплохо узнать, используете ли вы Windows.Forms или WIN32, или MFC или что.