GetMenuItemInfo()
和
SetMenuItemInfo()
需要指向已分配
MENUITEMINFO
实例,但您正在向它们传递一个指向未初始化的
MENUITEMINFO*
而是指针。这就是为什么你会出错。
您还必须设置
cbSize
和
fMask
调用前的字段
.
试试这个:
HMENU hmenu = GetMenu(hWnd);
MENUITEMINFO menuItem = {0};
menuItem.cbSize = sizeof(MENUITEMINFO);
menuItem.fMask = MIIM_STATE;
GetMenuItemInfo(hmenu, ID_OPTIONS_COMPUTERDELAY, FALSE, &menuItem);
if (menuItem.fState == MFS_CHECKED) {
// Checked, uncheck it
menuItem.fState = MFS_UNCHECKED;
} else {
// Unchecked, check it
menuItem.fState = MFS_CHECKED;
}
SetMenuItemInfo(hmenu, ID_OPTIONS_COMPUTERDELAY, FALSE, &menuItem);