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

Posted

技术标签:

【中文标题】如何将菜单项更改为选中或未选中?【英文标题】:How change menu item to checked or unchecked? 【发布时间】:2013-10-20 12:24:41 【问题描述】:

有一些菜单,需要将其更改为MF_CHECKEDMF_UNCHECKED。 以及如何查看现在检查的是哪一项菜单?

【问题讨论】:

1 阅读 MSDN。 2 阅读 MSDN 3 DWORD CheckMenuItem(HMENU, UINT, UINT) 4 使用 BOOL GetMenuItemInfo(HMENU, UINT, BOOL, LPMENUITEMINFO) @enhzflep: From CheckMenuItem: "CheckMenuItem 可用于“要求”部分中指定的操作系统。它可能会在后续更改或不可用版本。改为使用SetMenuItemInfo。" - 您不应该在没有免责声明的情况下建议使用此 API。 @IInspectable - 正如我很少说的那样,再次感谢您。在建议弃用接口方面的勤奋肯定应该比我的要高。 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于如何将菜单项更改为选中或未选中?的主要内容,如果未能解决你的问题,请参考以下文章

C#WInform 如何让菜单栏中只能有一个菜单项被选中,其他的不选中,当选择中其他的时,选中的为选中状态!

MFC - 选中/取消选中菜单项

Swift中带有多选复选框的可扩展下拉菜单

Linux 内核编译 Linux 内核 ④ ( 打开 Linux 内核编译 菜单配置 |菜单配置中的光标移动与选中状态 | 保存配置 | 配置项帮助文档 )

如何修改jQuery mobile子菜单中的关闭按钮以进行初始打开

python设置菜单项checkbox为非选中状态