2013-10-20 58 views
4

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

+3

** 1 **阅读MSDN。 ** 2 **读取MSDN ** 3 **'DWORD CheckMenuItem(HMENU,UINT,UINT)'** 4 **使用'BOOL GetMenuItemInfo(HMENU,UINT,BOOL,LPMENUITEMINFO)' – enhzflep

+1

@enhzflep:从[CheckMenuItem] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms647619.aspx):*“** CheckMenuItem **可用于需求部分指定的操作系统中,可能是更改或在后续版本中不可用,而是使用[** SetMenuItemInfo **](https://msdn.microsoft.com/en-us/library/windows/desktop/ms648001.aspx)。“* - 您不应该建议在没有免责声明的情况下使用此API。 – IInspectable

+0

@Ienspectable - 正如我所说的太少,再次感谢你。关于建议不赞成使用的界面的Dilligence当然应该比我的更高。 – enhzflep

回答

1

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

2

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

要修改菜单项的检查状态,请致电SetMenuItemInfo。还有一个实用功能CheckMenuItem。文档声明这个API调用在Windows 2000之后的版本中可能不可用。但是,它仍然是。

相关问题