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" (чей идентификатор ресурса является 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);
}