DrawMenuBar

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は追加されない。というか再描画されないから見えない。
Item3は追加されない。というか再描画されないから見えない。

Item3は追加されない。というか再描画されないから見えない。

DrawMenuBarを追加すると、

押すと、
押すと、

押すと、

再描画でItem3が見える。
再描画でItem3が見える。

再描画でItem3が見える。

Sample/winapi/DrawMenuBar/DrawMenuBar/src/DrawMenuBar at master · bg1bgst333/Sample · GitHub