如何将菜单项更改为选中或未选中?

Ole*_*leh 5 c++ winapi

有一些项目的菜单,需要将其更改为MF_CHECKEDMF_UNCHECKED
以及如何检查现在选中的菜单项?

IIn*_*ble 5

您可以通过调用 来检索检查状态以及其他信息GetMenuItemInfo。它填充了一个MENUITEMINFO结构。如果选中菜单项,则其fState成员将设置标志。MFS_CHECKED

要修改您调用的菜单项的检查状态SetMenuItemInfo。还有一个实用函数CheckMenuItem。文档指出此 API 调用可能在 Windows 2000 之后的版本中不可用。但是,它仍然可用。


Han*_*ant 3

只需将菜单的状态保存在您自己的变量中就是直接的解决方案。但您可以使用GetMenuItemInfo()检索菜单项的状态 MENUITEMINFO.fState 字段。