Microsoft Visual C++ и MFC. Программирование для Win95 и WinNT


Панель состояния


Для управления панелью состояния используется класс CStatusBar. Чтобы создать для окна панель состояния следует выполнить следующие действия.

  • Создать объект класса CStatusBar. Он будет представлять панель состояния и управлять ей
  • Вызвать метод Create класса CStatusBar, чтобы создать панель и связать ее с объектом представляющим панель состояния
  • Вызвать метод SetIndicators класса CStatusBar, чтобы связать каждый индикатор панели состояния с идентификатором текстовой строки

MFC AppWizard автоматически добавляет к созданному им  приложению программный код, служащий для отображения панели состояния.

Объект m_wndStatusBar класса CStatusBar определяется как элемент класса CMainFrame. Это вполне естественно, так как панель состояния принадлежит именно окну класса CMainFrame.

protected:

      CStatusBar  m_wndStatusBar;

Создание панели состояния и отображение ее на экране выполняется во время обработки метода OnCreate класса CMainFrame сразу после создания панели управления.

Методы Create и SetIndicators, создающие панель, вызываются в одной строке.

// Создаем панель status bar

if (!m_wndStatusBar.Create(this)

      !m_wndStatusBar.SetIndicators(indicators,

             sizeof(indicators)/sizeof(UINT)))

{

      // Ошибка при создании панели состояния status bar

      TRACE0("Failed to create status bar\n");

      return -1;

}

В качестве родительского окна панели состояния методу Create указано ключевое слово this. Таким образом, родительским окном панели состояния, также как и панели управления, является главное окно приложения, представленное объектом класса CMainFrame.

Информация, которая должна отображаться в панели состояния, определяется идентификаторами, записанными в массиве. Каждый такой идентификатор представляет текстовую строку из таблицы ресурсов приложения.

В нашем приложении массив indicators, описывающий панель состояния, определен в файле MainFrm.cpp непосредственно после таблицы сообщений.

static UINT indicators[] =

{

      ID_SEPARATOR,




Начало  Назад  Вперед



Книжный магазин