ユーザーがnotifiyiconデータ(トレイアイコン)を右クリックしたときに、右クリックコンテキストメニュー/サブメニューをwin32アプリケーション(c ++)に追加したいと思います。シンプルな 1 レベル メニューを作成できますが、複数レベル メニューの例が見つかりません。
次のようなメニューを作成したいと思います。
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 が作成されることです。アプリケーションの起動時にメニュー (サブメニュー付き) を作成し、アプリケーションの終了時に破棄することはできますか? ウィンドウはメニューの破棄を処理しますか?
返信ありがとうございます。