CMenu::GetMenuItemInfo
Извлекает сведения о пункте меню.
BOOL GetMenuItemInfo(
UINT uItem,
LPMENUITEMINFO lpMenuItemInfo,
BOOL fByPos = FALSE
);
Параметры
uItem
Идентификатор или индекс пункта меню получить сведения о.Смысл зависит от параметра значение ByPos.lpMenuItemInfo
Указатель на MENUITEMINFO, как описано в Windows SDK, который содержит сведения о меню.fByPos
Значение, определяющее значение nIDItem.По умолчанию ByPosFALSE, которое указывает на то, что uItem идентификатор пункта меню.Если ByPos не установлено в FALSE, оно показывает позицию пункта меню.
Возвращаемое значение
Если функция завершается успешно, то возвращаемое значение не равно нулю.Если функция завершается неудачей, то возвращаемое значение равно нулю.Чтобы получить расширенные сведения об ошибке, используйте функцию Win32 GetLastError, как описано в Windows SDK.
Заметки
Эта функция-член реализует поведение функции Win32 GetMenuItemInfo, как описано в Windows SDK.Обратите внимание, что в GetMenuItemInfo реализации MFC не используется дескриптор меню.
Пример
// CMainFrame::OnToggleTestMenuInfo() is a menu command handler for
// "Toggle Info" menu item (whose resource id is ID_MENU_TOGGLEINFO). It
// toggles the checked or unchecked state of the "Toggle Info" menu item.
// CMainFrame is a CFrameWnd-derived class.
void CMainFrame::OnToggleTestMenuItemInfo()
{
// Get the popup menu which contains the "Toggle Info" menu item.
CMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(4);
// Check the state of the "Toggle Info" menu item. Check the menu item
// if it is currently unchecked. Otherwise, uncheck the menu item
// if it is not currently checked.
MENUITEMINFO info;
info.cbSize = sizeof (MENUITEMINFO); // must fill up this field
info.fMask = MIIM_STATE; // get the state of the menu item
VERIFY(submenu->GetMenuItemInfo(ID_MENU_TOGGLEINFO, &info));
if (info.fState & MF_CHECKED)
submenu->CheckMenuItem(ID_MENU_TOGGLEINFO, MF_UNCHECKED | MF_BYCOMMAND);
else
submenu->CheckMenuItem(ID_MENU_TOGGLEINFO, MF_CHECKED | MF_BYCOMMAND);
}
Требования
Header: afxwin.h