UINT GetMenuState( UINT nID, UINT nFlags ) const;
Возвращаемое значение
Значение 0xFFFFFFFF если определенный элемент не существует. Если nId идентифицирует всплывающее меню , старший байт содержит число элементов в меню, байт младшего разряда содержит флажки меню, связанные с меню. Иначе возвращаемое значение маска (булево OR (или)) значений из следующего списка (эта маска описывает состояние пункта меню, который nId идентифицирует):
MF_CHECKED Действует как переключатель с MF_UNCHECKED, чтобы поместить заданную по умолчанию галочку рядом с элементом. Когда прикладная программа обеспечивает точечные рисунки галочки (см. SetMenuItemBitmaps функцию), " галочка включена "на точечный рисунок отображается. MF_DISABLED Отключает пункт меню так, чтобы он не мог быть выбран, но не потускнел. MF_ENABLED Расрешает пункту меню так, чтобы он могл быть выбран и восстановлен из недоступного состояния. Обратите внимание, что значение этой константы - 0, прикладная программа не должна проверить против 0 для сбоя при использовании этого значения. MF_GRAYED Отключает пункт меню так, чтобы он не могл быть выбран и потускнел. MF_MENUBARBREAK Помещает элемент в новую строку в статических меню или в новом столбце в всплывающем меню. Новый столбец в всплывающем меню будет отделяться от старого столбца вертикальной разделительной линией. MF_MENUBREAK Помещает элемент в новую строку в статических меню или в новом столбце в всплывающем меню. Никакая разделительная линия не помещена между столбцами. MF_SEPARATOR Выводит горизонтальную разделительную линию. Может использоваться только в всплывающем меню. Эта строка не может быть недоступна, заблокирован, или высвечена. Другие параметры игнорируются. MF_UNCHECKED Действия как переключатель с MF_CHECKED, чтобы удалить галочку рядом с элементом. Когда прикладная программа обеспечивает точечные рисунки галочки (см. SetMenuItemBitmaps функцию членства), " галочка выключена " на точечный рисунок отображается. Обратите внимание, что значение этой константы - 0, прикладная программа не должна проверить против 0 для сбоя при использовании этого значения.
Параметры
nID
Определяет пункт меню ID, как определено nFlags.
nFlags
Определяет характер nID. Это может быть одно из следующих значений:
MF_BYCOMMAND Определяет, что параметр дает команду ID существующего пункта меню. Это - значение по умолчанию. MF_BYPOSITION Определяет, что параметр дает позицию существующего пункта меню. Первый элемент - в позиции 0.
Замечания
Возвращает состояние определенного пункта меню или числа элементов в всплывающем.
Пример
// CMainFrame:: OnToggleTestMenuItem () - драйвер команды меню для // "TEST" пунктa меню (чей идентификатор ресурса является ID_HELP_TEST). Это переключатели // выбран или не выбран состояние пункта меню "Test". // CMainFrame - класс унаследованный от CMainFrame. 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); }