Шаг 872 - CMenu::GetMenuState

UINT GetMenuState( UINT nID, UINT nFlags ) const;

Возвращаемое значение
Значение 0xFFFFFFFF, если определенный элемент не существует. Если nId идентифицирует всплывающее меню старший байт содержит число элементов в меню, а байт младшего разряда содержит флажки меню, связанные с всплывающем меню. Иначе возвращаемое значение - маска ( или (OR)) значений из следующего списка (эта маска описывает состояние пункта меню, который nId идентифицирует):

Параметры
nID
Определяет пункт меню ID, как определено nFlags.
nFlags
Определяет характер nID. Это может быть одно из следующих значений:

Замечания
Возвращает состояние определенного пункта меню или числа элементов в меню.

Пример

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

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

	// Проверить состояние пункта меню "Test". Установите выбран
	// если пункт в настоящее время не выбран. Иначе, 
	// установите выбран
	UINT state = submenu->GetMenuState(ID_HELP_TEST, MF_BYCOMMAND);
	ASSERT(state != 0xFFFFFFFF);

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

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