DrawMenuBarで、メニューの再描画をする。
DrawMenuBar 関数 (winuser.h) - Win32 apps | Microsoft Learn
DrawMenuBar.cppで、
// どのメニュー項目が選択されたかを判定する. switch (LOWORD(wParam)){ // LOWORD(wParam)で選択されたメニュー項目のIDが取得できるので, その値で判定する. // 取得したIDごとに処理を分岐. // Item2-1が選択された時. case ID_ITEM_2_1: // ID_ITEM_2_1ブロック { // hPopupMenu3の追加. hPopupMenu3 = CreatePopupMenu(); // CreatePopupMenuでポップアップメニューを作成し, ハンドルをhPopupMenu3に格納. AppendMenu(hMenu, MF_ENABLED | MF_POPUP, (UINT_PTR)hPopupMenu3, _T("Item3(&X)")); // AppendMenuでhMenuにhPopupMenu3を追加. } // 既定の処理へ向かう. break; // breakで抜けて, 既定の処理(DefWindowProc)へ向かう.
メニューを追加。
押しても、
Item3は追加されない。というか再描画されないから見えない。
DrawMenuBarを追加すると、
押すと、
再描画でItem3が見える。
Sample/winapi/DrawMenuBar/DrawMenuBar/src/DrawMenuBar at master · bg1bgst333/Sample · GitHub