Я хотел бы добавить контекстное меню / подменю правой кнопки мыши в мое приложение win32 (c ++), когда пользователь щелкает правой кнопкой мыши данные notifiyicon (значок в трее). Я могу сделать простое одноуровневое меню, но не могу найти примера многоуровневого меню.
Я хотел бы создать меню, которое выглядело бы примерно так:
Settings -> Setting 1 -> Setting 2
-> Setting 3
-> Settings 4 -> Setting 5
-> Setting 6
Exit
Я создаю меню с помощью этого кода:
HMENU hPopupMenu = CreatePopupMenu();
InsertMenu(hPopupMenu, 0, MF_BYPOSITION | MF_STRING, IDM_EXIT, L"Exit");
SetForegroundWindow(hWnd);
TrackPopupMenu(hPopupMenu, TPM_BOTTOMALIGN | TPM_RIGHTALIGN, p.x, p.y, 0, hWnd, NULL);
Приведенный выше код помещается в обработчик сообщения notifyicondata (WM_RBUTTONUP).
Как я могу создавать подменю, используя приведенный выше код? Могу ли я создать новое HMENU и вставить его в родительское меню?
Еще меня беспокоит то, что меню всегда создается при запуске события щелчка правой кнопкой мыши, поэтому каждый раз, когда оно запускается, создается новое HMENU. Можно ли создать меню (с подменю) при запуске приложения и уничтожить его при закрытии приложения? Окна обрабатывают уничтожение меню?
Спасибо за ответ.