2013-10-20 49 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之後的版本中可能不可用。但是,它仍然是。

相關問題