Класс CCmdUI

Используется только в обработчике ON_UPDATE_COMMAND_UI в производном CCmdTargetклассе.

Синтаксис

class CCmdUI

Участники

Открытые методы

Имя Описание
CCmdUI::ContinueRouting Указывает механизму маршрутизации команд продолжить маршрутизацию текущего сообщения вниз по цепочке обработчиков.
CCmdUI::Enable Включает или отключает элемент пользовательского интерфейса для этой команды.
CCmdUI::SetCheck Задает проверка состояние элемента пользовательского интерфейса для этой команды.
CCmdUI::SetRadio SetCheck Как и функция-член, но работает на радиогруппах.
CCmdUI::SetText Задает текст для элемента пользовательского интерфейса для этой команды.

Открытые члены данных

Имя Описание
CCmdUI::m_nID Идентификатор объекта пользовательского интерфейса.
CCmdUI::m_nIndex Индекс объекта пользовательского интерфейса.
CCmdUI::m_pMenu Указывает на меню, представленное CCmdUI объектом.
CCmdUI::m_pOther Указывает на объект окна, отправляющий уведомление.
CCmdUI::m_pSubMenu Указывает на содержащееся вложенное меню, представленное CCmdUI объектом.

Замечания

CCmdUI не имеет базового класса.

Когда пользователь приложения вытягивает меню, каждый пункт меню должен знать, следует ли отображать его как включенный или отключенный. Цель команды меню предоставляет эти сведения путем реализации обработчика ON_UPDATE_COMMAND_UI. Для каждого объекта пользовательского интерфейса команды в приложении используйте окно мастера классов или свойствпредставлении классов) для создания прототипа карты сообщений и функции для каждого обработчика.

Когда меню вытягивается, платформа ищет и вызывает каждый обработчик ON_UPDATE_COMMAND_UI, каждый обработчик вызывает CCmdUI функции-члены, например Enable и Checkплатформу, а затем соответствующим образом отображает каждый элемент меню.

Элемент меню можно заменить кнопкой панели управления или другим объектом пользовательского интерфейса, не изменяя код в обработчике ON_UPDATE_COMMAND_UI .

В следующей таблице перечислены функции-члены эффекта CCmdUIдля различных элементов пользовательского интерфейса команды.

Элемент пользовательского интерфейса Enable SetCheck SetRadio Settext
Пункт меню Включает или отключает Проверки или отмена проверка Проверка с помощью точки Задает текст элемента
Кнопка на панели инструментов Включает или отключает Выбирает, отменяет выборку или неопределенную То же, что SetCheck (Неприменимо)
Панель состояния Делает текст видимым или невидимым Задает всплывающее окно или обычную границу То же, что SetCheck Задает текст области
Обычная кнопка в CDialogBar Включает или отключает Флажок проверка проверки или отмены проверка То же, что SetCheck Задает текст кнопки
Обычный элемент управления в CDialogBar Включает или отключает (Неприменимо) (Неприменимо) Задает текст окна

Дополнительные сведения об использовании этого класса см. в разделе "Обновление объектов пользовательского интерфейса".

Иерархия наследования

CCmdUI

Требования

Заголовок: afxwin.h

CCmdUI::ContinueRouting

Вызовите эту функцию-член, чтобы сообщить механизму маршрутизации команд, чтобы продолжить маршрутизацию текущего сообщения вниз по цепочке обработчиков.

void ContinueRouting();

Замечания

Это расширенная функция-член, которая должна использоваться в сочетании с обработчиком ON_COMMAND_EX, возвращающим значение FALSE. Дополнительные сведения см . в техническом примечание 6.

CCmdUI::Enable

Вызовите эту функцию-член, чтобы включить или отключить элемент пользовательского интерфейса для этой команды.

virtual void Enable(BOOL bOn = TRUE);

Параметры

Бон
ЗНАЧЕНИЕ TRUE, чтобы включить элемент, false, чтобы отключить его.

Пример

ON_UPDATE_COMMAND_UI(ID_FILE_SAVE, &CMyDoc::OnUpdateFileSave)

 

void CMyDoc::OnUpdateFileSave(CCmdUI *pCmdUI)
{
   // Enable the menu item if the file has been modified.
   pCmdUI->Enable(m_bModified);
}

CCmdUI::m_nID

Идентификатор элемента меню, кнопки панели инструментов или другого объекта пользовательского интерфейса, представленного CCmdUI объектом.

UINT m_nID;

CCmdUI::m_nIndex

Индекс элемента меню, кнопки панели инструментов или другого объекта пользовательского интерфейса, представленного CCmdUI объектом.

UINT m_nIndex;

CCmdUI::m_pMenu

Указатель ( CMenu типа) на меню, представленное CCmdUI объектом.

CMenu* m_pMenu;

Замечания

ЗНАЧЕНИЕ NULL, если элемент не является меню.

CCmdUI::m_pSubMenu

Указатель (типа CMenu ) на содержащееся вложенное меню, представленное CCmdUI объектом.

CMenu* m_pSubMenu;

Замечания

ЗНАЧЕНИЕ NULL, если элемент не является меню. Если всплывающее меню представляет собой всплывающее меню, m_nID содержит идентификатор первого элемента во всплывающем меню. Дополнительные сведения см . в техническом примечание 21.

CCmdUI::m_pOther

Указатель (типа CWnd) на объект окна, например средство или панель состояния, отправляющий уведомление.

CWnd* m_pOther;

Замечания

ЗНАЧЕНИЕ NULL, если элемент является меню или не-объект CWnd .

CCmdUI::SetCheck

Вызовите эту функцию-член, чтобы задать элемент пользовательского интерфейса для этой команды соответствующим проверка состоянию.

virtual void SetCheck(int nCheck = 1);

Параметры

Nпроверьте
Задает заданное состояние проверка. Если значение 0, не проверка; если 1, проверка; и значение 2, задает неопределенное значение.

Замечания

Эта функция-член работает для элементов меню и кнопок панели инструментов. Неопределенное состояние применяется только к кнопкам панели инструментов.

CCmdUI::SetRadio

Вызовите эту функцию-член, чтобы задать элемент пользовательского интерфейса для этой команды соответствующим проверка состоянию.

virtual void SetRadio(BOOL bOn = TRUE);

Параметры

Бон
ЗНАЧЕНИЕ TRUE для включения элемента; в противном случае ЗНАЧЕНИЕ FALSE.

Замечания

Эта функция-член работает так SetCheck, за исключением того, что она работает с элементами пользовательского интерфейса, действующими в составе радиогруппы. Не проверка другие элементы в группе не автоматически, если элементы сами не поддерживают поведение радиогруппы.

CCmdUI::SetText

Вызовите эту функцию-член, чтобы задать текст элемента пользовательского интерфейса для этой команды.

virtual void SetText(LPCTSTR lpszText);

Параметры

lpszText
Указатель на текстовую строку.

Пример

void CMyRichEditView::OnUpdateLineNumber(CCmdUI *pCmdUI)
{
   int nLine = GetRichEditCtrl().LineFromChar(-1) + 1;

   CString string;
   string.Format(_T("Line %d"), nLine);
   pCmdUI->Enable(TRUE);
   pCmdUI->SetText(string);
}

См. также

Пример MDI MFC
Диаграмма иерархии
Класс CCmdTarget