Визуальное программирование и MFC

       

Отображение текста в панели состояния


Для изменения текста в самом первом индикаторе панели состояния, который имеет идентификатор ID_SEPARATOR, можно воспользоваться методом SetWindowText. Этот метод определен в классе CWnd, и его можно использовать, так как класс панели состояния наследуется от класса CWnd. Строку, которую надо вывести в панели состояния, следует передать через параметр этого метода.

Метод SetTextWindow изменяет текст в панели состояния, передавая ему сообщение WM_SETTEXT. Самый первый индикатор панели состояния, который имеет идентификатор ID_SEPARATOR, отличается от остальных индикаторов панели состояния. В нем отображаются подсказки для выбранных строк меню, кнопок панели управления и в некоторых других случаях. Фактически этот индикатор используется различными объектами библиотеки MFC для отображения своего состояния или кратких подсказок.

Объекты MFC устанавливают текст первого индикатора, который имеет идентификатор ID_SEPARATOR, непосредственного передавая окну панели состояния сообщение WM_SETTEXT. Отсюда, кстати, следует один вывод: текст, который программист самостоятельно выводит методом SetWindowText, может быть изменен в любой момент без ведома программиста. Чтобы исправить такое положение, можно наследовать класс, в котором определить обработчик для сообщения WM_SETTEXT. Этот обработчик, например, может полностью игнорировать сообщения WM_SETTEXT или обрабатывать их только в особых случаях.

Если необходимо изменить текст не только в первом индикаторе, но и в других индикаторах панели состояния, можно воспользоваться методом SetPaneText, который определен в классе CStatusBar. Текст, который отображается в индикаторе в данный момент, можно определить при помощи метода GetPaneText, определенного в класса CStatusBar:

Еще один метод изменения индикаторов панели состояния основан на обработке сообщения ON_UPDATE_COMMAND_UI. Во время, когда приложение “простаивает”, сообщение ON_UPDATE_COMMAND_UI передается для всех индикаторов панели состояния (также как и для всех строк меню и всех кнопок панели управления).



Содержание раздела