Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Func.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.58 Mб
Скачать

CStatusBar

Объект класса CStatusBar представляет собой панель управления, состоящую из ряда панелей, содержащих текстовую информацию, или "индикаторов". Эти панели обычно используются для вывода сообщений и индикации различных состояний. Они используются, например, для вывода справочной информации о командах меню и индикации состояния клавиш <Scroll Lock>, <Num Lock> и <Caps Lock>.

В библиотеке 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.

CStatusBar::CommandToIndex

int CommandToIndex( UINT nIDFind ) const;

Возвращаемое значение

Индекс панели индикатора, в случае успешного завершения функции, и –1 в противном случае.

Аргументы

  1. nIDFind — идентификатор панели, индекс которой требуется получить.

Примечание

Позволяет получить индекс индикатора по заданному идентификатору. Первый индикатор имеет нулевой индекс.

CStatusBar::Create

BOOL Create( CWnd* pParentWnd, DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM, UINT nID = AFX_IDW_STATUS_BAR );

Возвращаемое значение

Ненулевое, в случае успешного завершения функции, и нулевое в противном случае.

Аргументы

  1. pParentWnd — указатель на объект класса CWnd окно которого является родительским окном окна строки состояния.

  2. dwStyle — стиль строки состояния. В дополнение к стандартным стилям Windows в данном аргументе могут присутствовать следующие стили:

  • CBRS_TOP — панель управления расположена над рабочей областью главного окна приложения.

  • CBRS_BOTTOM — панель управления расположена под рабочей областью главного окна приложения.

  • CBRS_NOALIGN — панель управления не изменяет своего положения при изменении размеров и положения родительского окна.

  1. nID — идентификатор дочернего окна строки состояния.

Примечание

Создаёт строку состояния (дочернее окно) и связывает его с объектом класса CStatusBar. Кроме того, данная функция задаёт исходный шрифт и устанавливает высоту строки состояния, заданную по умолчанию.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]