我正在测试Windows API的菜单状态(禁用、灰色、选中等),但有些东西我不理解。 文档说明
我该如何使禁用的菜单项不变灰呢?
MF_DISABLED
不会使项目变灰,但这是我得到的结果:
使用以下代码:
HMENU menuBar = CreateMenu();
HMENU hopMenu = CreateMenu();
AppendMenuW(menuBar, MF_POPUP, (UINT_PTR)hopMenu, L"hop");
AppendMenuW(hopMenu, MF_STRING, 0, L"Enabled");
AppendMenuW(hopMenu, MF_STRING | MF_DISABLED, 1, L"Disabled");
AppendMenuW(hopMenu, MF_STRING | MF_GRAYED, 2, L"Grayed");
AppendMenuW(hopMenu, MF_STRING | MF_CHECKED, 3, L"Checked");
AppendMenuW(hopMenu, MF_STRING | MF_DISABLED | MF_CHECKED, 4, L"Disabled && Checked");
AppendMenuW(hopMenu, MF_STRING | MF_DISABLED | MF_GRAYED, 5, L"Disabled && Grayed");
AppendMenuW(hopMenu, MF_STRING | MF_CHECKED | MF_GRAYED, 6, L"Checked && Grayed");
SetMenu(hwnd, menuBar);
我该如何使禁用的菜单项不变灰呢?
MFS_DISABLED
和MFS_GRAYED
的值完全相同。 - JabberwockyMF_GRAYED
和MF_DISABLED
,它们的值并不相同,而不是MFS_GRAYED
和MFS_DISABLED
,后者的值是相同的。因此,我的评论有些误导。 - Jabberwocky