Шаг 34.
Среда программирования Visual C++.
Обработка команд обновления пользовательского интерфейса

    На этом шаге мы рассмотрим механизм программного изменения пользовательского интерфейса.

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

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

Таблица 1. Методы класса CCmdUI
Метод Назначение
Enable() Значение TRUE делает соответствующий элемент интерфейса доступным, a FALSE блокирует его. Недоступные пункты меню затемняются
SetCheck() Если задано значение TRUE, пункт меню помечается галочкой, а кнопка панели инструментов становится доступной. Если параметр равен FALSE, галочки у названия команды в меню нет, а кнопка панели инструментов блокируется
SetRadio() Действует аналогично SetCheck, только оперирует командой пользовательского интерфейса как элементом группы переключателей. При этом остальные команды группы не очищаются автоматически, если, конечно, это явно не реализовано в них самих
SetText() Изменяет текст команды пользовательского интерфейса. Не влияет на кнопки панели инструментов

    Добавим в класс СМуАррАрр обработку команд обновления пользовательского интерфейса, которые изменяют состояние команд Connect и Upload и соответствующих кнопок панели инструментов.

Текст измененного приложения можно взять здесь (44,4 Кб).

    На следующем шаге мы рассмотрим запись в строку состояния.




Предыдущий шаг Содержание Следующий шаг