Visual C++. Описание стандартных классов - CStatusBar

ОГЛАВЛЕНИЕ


CStatusBar

Объект класса CStatusBar представляет собой панель управления, состоящую из ряда панелей, содержащих текстовую информацию, или "индикаторов". Эти панели обычно используются для вывода сообщений и индикации различных состояний. Они используются, например, для вывода справочной информации о командах меню и индикации состояния клавиш , и . В библиотеке MFC версии 4.0 появилась функция CStatusBar::GetStatusBarCtrl, позволяющая пользователю получить непосредственный доступ к элементу управления Windows. Непосредственное использование элемента управления Windows позволяет вносить в него изменения и использовать дополнительные возможности данного элемента управления. Функции-члены класса CStatusBar обеспечивают достаточно широкие возможности для работы с панелью инструментов, но функция GetStatusBarCtrl позволяет использовать дополнительные возможности строки состояния в Windows 95. Функция GetStatusBarCtrl возвращает ссылку на объект класса CStatusBarCtrl. Приложение хранит информацию об индикаторе строки состояния в массиве, в котором крайнему левому индикатору соответствует нулевой индекс. При создании объекта класса строки состояния используется массив идентификаторов индикаторов, который приложение связывает с соответствующим массивом индикаторов. После этого для доступа к индикатору может использоваться как его идентификатор, так и его индекс в массиве. По умолчанию первый индикатор является "эластичным": он занимает все место, не занятое в строке состояния другими индикаторами. Таким образом другие панели индикаторов выравниваются по правому краю. Чтобы создать в приложении строку состояния: 1. Создайте объект класса CStatusBar. 2. Вызовите функцию Create (или CreateEx), создающую в окне строку состояния Windows и связывающую ее с объектом класса CStatusBar. 3. Вызовите функцию SetIndicators, сопоставляющую каждой панели индикатора свой идентификатор. Существует три способа обновления текста в панели строки состояния:

  • вызвать функцию CWnd::SetWindowText для обновления текста нулевой панели;
  • вызвать функцию CCmdUI::SetText в функции обработки сообщения ON_UPDATE_COMMAND_UI в классе строки состояния;
  • вызвать функцию SetPaneText для обновления текста в каждой панели.

Для изменения стиля панели строки состояния вызывается функция SetPaneStyle. Описание данного класса содержится в файле заголовка afxext.h.