Шаг 874 - CMenu::GetMenuItemInfo

BOOL CMenu::GetMenuItemInfo( UINT nIDItem, LPMENUITEMINFO lpMenuItemInfo, BOOL ByPos = FALSE );

Возвращаемое значение
Если функция преуспевает, возвращаемое значение отлично от нуля. Если сбои, возвращаемое значение - нуль. Чтобы получать расширенную информацию ошибки, используйте функцию Win32 GetLastError, как описано в Platform SDK.

Параметры
nIDItem
Идентификатор или позиция пункта меню, чтобы получить информацию. Значение этого параметра зависит от значения ByPos.
lpMenuItemInfo
Указатель на MENUITEMINFO, как описано в Platform SDK, который содержит информацию относительно меню.
ByPos
Значение, определяющее значение nIDItem. По умолчанию, ByPos FALSE, который указывает, что uItem - идентификатор пункта меню. Если ByPos не установлен к FALSE, это указывает позицию пункта меню.

Замечания
Эта функция осуществляет поведение функции Win32 GetMenuItemInfo, как описано в Platform SDK.
Обратите внимание, что в MFC реализации GetMenuItemInfo, Вы не используете дескриптор для меню.

Пример

// CMainFrame::OnToggleTestMenuItem()- драйвер команды меню  
// "Test" (чей идентификатор ресурса является ID_HELP_TEST). Это переключатели 
// выбран или не выбран состояние пункта меню "Test".
// CMainFrame - класс наследник CFrameWnd.


void CMainFrame::OnToggleTestMenuItem()
{
	// Получите всплывающее меню, которое содержит пункт меню "Test".
	CMenu* mmenu = GetMenu();
	CMenu* submenu = mmenu->GetSubMenu(3);

	// Проверить состояние пункта меню "Test". Установите выбран
	// если пункт в настоящее время не выбран. Иначе, 
	// установите выбран
   
	MENUITEMINFO info;
	info.cbSize = sizeof (MENUITEMINFO); // должны заполнить это поле
	info.fMask = MIIM_STATE;             // получите состояние пункта меню
	VERIFY(submenu->GetMenuItemInfo(ID_HELP_TEST, &info));

	if (info.fState & MF_CHECKED)
		submenu->CheckMenuItem(ID_HELP_TEST, MF_UNCHECKED | MF_BYCOMMAND);
	else
		submenu->CheckMenuItem(ID_HELP_TEST, MF_CHECKED | MF_BYCOMMAND);
}

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 9.02.2002