Поделиться через


Класс CStatusBar

Панель элементов управления со строкой областей текстового вывода или "индикаторов".

Синтаксис

class CStatusBar : public CControlBar

Участники

Открытые конструкторы

Имя Описание
CStatusBar::CStatusBar Формирует объект CStatusBar.

Открытые методы

Имя Описание
CStatusBar::CommandToIndex Возвращает индекс для заданного идентификатора индикатора.
CStatusBar::Create Создает строку состояния, присоединяет ее к CStatusBar объекту и задает начальную высоту шрифта и строки.
CStatusBar::CreateEx CStatusBar Создает объект с дополнительными стилями для внедренного CStatusBarCtrl объекта.
CStatusBar::D rawItem Вызывается, когда визуальный аспект элемента управления "Строка состояния владельца" изменяется.
CStatusBar::GetItemID Возвращает идентификатор индикатора для заданного индекса.
CStatusBar::GetItemRect Возвращает прямоугольник отображения для заданного индекса.
CStatusBar::GetPaneInfo Возвращает идентификатор индикатора, стиль и ширину для заданного индекса.
CStatusBar::GetPaneStyle Возвращает стиль индикатора для заданного индекса.
CStatusBar::GetPaneText Возвращает текст индикатора для заданного индекса.
CStatusBar::GetStatusBarCtrl Разрешает прямой доступ к базовому общему элементу управления.
CStatusBar::SetIndicator Задает идентификаторы индикаторов.
CStatusBar::SetPaneInfo Задает идентификатор индикатора, стиль и ширину для заданного индекса.
CStatusBar::SetPaneStyle Задает стиль индикатора для заданного индекса.
CStatusBar::SetPaneText Задает текст индикатора для заданного индекса.

Замечания

Области вывода обычно используются в качестве строк сообщений и в качестве индикаторов состояния. Примеры включают в себя строки справки меню, которые кратко объясняют выбранную команду меню и индикаторы, показывающие состояние SCROLL LOCK, NUM LOCK и других ключей.

CStatusBar::GetStatusBarCtrl, функция-член, новая для MFC 4.0, позволяет воспользоваться поддержкой общего элемента управления Windows для настройки строки состояния и дополнительных функций. CStatusBar функции-члены предоставляют большую часть функций общих элементов управления Windows; однако при вызове GetStatusBarCtrlвы можете предоставить свои строки состояния еще больше характеристик строки состояния Windows 95/98. При вызове GetStatusBarCtrlон вернет ссылку на CStatusBarCtrl объект. Дополнительные сведения о проектировании панелей инструментов с помощью общих элементов управления Windows см. в разделе CStatusBarCtrl . Дополнительные сведения об общих элементах управления см. в разделе "Общие элементы управления " в пакете SDK для Windows.

Платформа хранит сведения о индикаторе в массиве с самым левым индикатором в позиции 0. При создании строки состояния используется массив строковых идентификаторов, которые платформа связывает с соответствующими индикаторами. Затем можно использовать строковый идентификатор или индекс для доступа к индикатору.

По умолчанию первый индикатор является "эластичным": он занимает длину строки состояния, не используемую другими панелями индикаторов, чтобы другие панели были выровнены по правому краю.

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

  1. CStatusBar Создайте объект.

  2. Вызовите функцию Create (или CreateEx), чтобы создать окно строки состояния и присоединить его к объектуCStatusBar.

  3. Вызовите setIndicator, чтобы связать строковый идентификатор с каждым индикатором.

В области строки состояния можно обновить текст тремя способами:

  1. Вызовите CWnd::SetWindowText , чтобы обновить текст только в области 0.

  2. Вызовите CCmdUI::SetText в обработчике ON_UPDATE_COMMAND_UI строки состояния.

  3. Вызовите SetPaneText , чтобы обновить текст для любой области.

Вызовите SetPaneStyle , чтобы обновить стиль панели состояния.

Дополнительные сведения об использовании CStatusBarсм. в статье о реализации строки состояния в MFC и техническом примечание 31: панели управления.

Иерархия наследования

CObject

CCmdTarget

CWnd

CControlBar

CStatusBar

Требования

Заголовок: afxext.h

CStatusBar::CommandToIndex

Возвращает индекс индикатора для заданного идентификатора.

int CommandToIndex(UINT nIDFind) const;

Параметры

nIDFind
Строковый идентификатор индикатора, индекс которого требуется извлечь.

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

Индекс индикатора при успешном выполнении; -1, если не выполнено.

Замечания

Индекс первого индикатора равен 0.

CStatusBar::Create

Создает строку состояния (дочернее окно) и связывает ее с CStatusBar объектом.

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

Параметры

pParentWnd
Указатель на объект CWnd , окно Windows которого является родительским элементом строки состояния.

dwStyle
Стиль строки состояния. Помимо стандартных стилей Windows эти стили поддерживаются.

  • CBRS_TOP панель управления находится в верхней части окна фрейма.

  • CBRS_BOTTOM панель управления находится в нижней части окна фрейма.

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

nID
Идентификатор дочернего окна панели инструментов.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

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

CStatusBar::CreateEx

Вызовите эту функцию, чтобы создать строку состояния (дочернее окно) и связать ее с CStatusBar объектом.

virtual BOOL CreateEx(
    CWnd* pParentWnd,
    DWORD dwCtrlStyle = 0,
    DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
    UINT nID = AFX_IDW_STATUS_BAR);

Параметры

pParentWnd
Указатель на объект CWnd , окно Windows которого является родительским элементом строки состояния.

dwCtrlStyle
Дополнительные стили для создания внедренного объекта CStatusBarCtrl . По умолчанию указывается строка состояния без поддержки захвата размера или подсказки. Поддерживаются стили строк состояния:

  • SBARS_SIZEGRIP Элемент управления строкой состояния включает сцепление размера в правом конце строки состояния. Сцепление размера похоже на границу размера; Это прямоугольная область, которую пользователь может щелкнуть и перетащить, чтобы изменить размер родительского окна.

  • SBT_TOOLTIPS Строка состояния поддерживает подсказки.

Дополнительные сведения об этих стилях см. в разделе "Параметры" для CStatusBarCtrl.

dwStyle
Стиль строки состояния. Значение по умолчанию указывает, что в нижней части окна фрейма создается видимая строка состояния. Примените любое сочетание стилей элементов управления строк состояния, перечисленных в стилях окон и CDialogBar::Create. Однако этот параметр всегда должен включать стили WS_CHILD и WS_VISIBLE.

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

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Эта функция также задает начальный шрифт и задает высоту строки состояния значением по умолчанию.

Используйте CreateExвместо создания, если во время создания внедренного элемента управления строк состояния должны присутствовать определенные стили. Например, задайте для dwCtrlStyle значение SBT_TOOLTIPS для отображения подсказок в объекте строки состояния.

CStatusBar::CStatusBar

CStatusBar Создает объект, создает шрифт строки состояния по умолчанию при необходимости и задает характеристики шрифта значениям по умолчанию.

CStatusBar();

CStatusBar::D rawItem

Эта функция-член вызывается платформой, когда визуальный аспект нарисованной владельцем строки состояния изменяется.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

Параметры

lpDrawItemStruct
Указатель на структуру DRAWITEMSTRUCT , содержащую сведения о типе документа.

Замечания

Элемент itemAction DRAWITEMSTRUCT структуры определяет действие рисования, которое необходимо выполнить. Переопределите эту функцию-член, чтобы реализовать рисование для объекта owner-draw CStatusBar . Приложение должно восстановить все объекты графического интерфейса устройства (GDI), выбранные для контекста отображения, предоставленного в lpDrawItemStruct , перед завершением этой функции-члена.

CStatusBar::GetItemID

Возвращает идентификатор индикатора, заданного nIndex.

UINT GetItemID(int nIndex) const;

Параметры

nIndex
Индекс индикатора, идентификатор которого требуется получить.

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

Идентификатор индикатора, заданного nIndex.

CStatusBar::GetItemRect

Копирует координаты индикатора, указанного nIndex, в структуру, на которую указывает lpRect.

void GetItemRect(
    int nIndex,
    LPRECT lpRect) const;

Параметры

nIndex
Индекс индикатора, координаты прямоугольника которого необходимо извлечь.

lpRect
Указывает на структуру RECT или объект CRect , который получит координаты индикатора, указанного nIndex.

Замечания

Координаты находятся в пикселях относительно левого верхнего угла строки состояния.

CStatusBar::GetPaneInfo

Задает nID, nStyle и cxWidth идентификатору, стилю и ширине области индикатора в расположении, указанном nIndex.

void GetPaneInfo(
    int nIndex,
    UINT& nID,
    UINT& nStyle,
    int& cxWidth) const;

Параметры

nIndex
Индекс области, сведения которой необходимо извлечь.

nID
Ссылка на UINT, задается идентификатором области.

nStyle
Ссылка на UINT, которая задана в стиле области.

cxWidth
Ссылка на целое число, заданное шириной панели.

CStatusBar::GetPaneStyle

Вызовите эту функцию-член, чтобы получить стиль панели состояния.

UINT GetPaneStyle(int nIndex) const;

Параметры

nIndex
Индекс области, стиль которой требуется извлечь.

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

Стиль панели состояния, указанной nIndex.

Замечания

Стиль области определяет, как отображается панель.

Список стилей, доступных для строк состояния, см. в разделе "Создание".

CStatusBar::GetPaneText

Вызовите эту функцию-член, чтобы получить текст, отображаемый в области строки состояния.

CString GetPaneText(int nIndex) const;  void GetPaneText(int nIndex, CString& rString) const;

Параметры

nIndex
Индекс области, текст которой требуется извлечь.

rString
Ссылка на объект CString , содержащий полученный текст.

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

Объект CString , содержащий текст области.

Замечания

Вторая форма этой функции-члена заполняет CString объект строковым текстом.

CStatusBar::GetStatusBarCtrl

Эта функция-член позволяет напрямую обращаться к базовому общему элементу управления.

CStatusBarCtrl& GetStatusBarCtrl() const;

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

Содержит ссылку на объект CStatusBarCtrl .

Замечания

Используйте GetStatusBarCtrl для использования функциональных возможностей общей панели состояния Windows, а также для использования поддержки CStatusBarCtrl для настройки строки состояния. Например, используя общий элемент управления, можно указать стиль, включающий захват размера в строке состояния, или указать стиль, который будет отображаться в верхней части клиентской области родительского окна.

Дополнительные сведения об общих элементах управления см. в разделе "Общие элементы управления " в пакете SDK для Windows.

CStatusBar::SetIndicator

Задает идентификатор каждого индикатора значению, указанному соответствующим элементом массива lpIDArray, загружает строковый ресурс, указанный каждым идентификатором, и задает текст индикатора строке.

BOOL SetIndicators(
    const UINT* lpIDArray,
    int nIDCount);

Параметры

lpIDArray
Указатель на массив идентификаторов.

nIDCount
Число элементов в массиве, на которое указывает lpIDArray.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

CStatusBar::SetPaneInfo

Задает для указанной области индикатора новый идентификатор, стиль и ширину.

void SetPaneInfo(
    int nIndex,
    UINT nID,
    UINT nStyle,
    int cxWidth);

Параметры

nIndex
Индекс области индикатора, стиль которого должен быть задан.

nID
Новый идентификатор области индикатора.

nStyle
Новый стиль области индикатора.

cxWidth
Новая ширина области индикатора.

Замечания

Поддерживаются следующие стили индикаторов:

  • SBPS_NOBORDERS no 3-D границы вокруг панели.

  • SBPS_POPOUT обратная граница, чтобы текст "появляется".

  • SBPS_DISABLED Не рисуйте текст.

  • SBPS_STRETCH область Stretch для заполнения неиспользуемого пространства. Для каждой панели состояния может быть только одна панель состояния.

  • SBPS_NORMAL Нет растяжения, границ или всплывающих окон.

CStatusBar::SetPaneStyle

Вызовите эту функцию-член, чтобы задать стиль панели состояния.

void SetPaneStyle(
    int nIndex,
    UINT nStyle);

Параметры

nIndex
Индекс области, стиль которой необходимо задать.

nStyle
Стиль панели, стиль которой должен быть задан.

Замечания

Стиль области определяет, как отображается панель.

Список стилей, доступных для строк состояния, см. в разделе SetPaneInfo.

CStatusBar::SetPaneText

Вызовите эту функцию-член, чтобы задать текст области строке, на которую указывает lpszNewText.

BOOL SetPaneText(
    int nIndex,
    LPCTSTR lpszNewText,
    BOOL bUpdate = TRUE);

Параметры

nIndex
Индекс области, текст которой необходимо задать.

lpszNewText
Указатель на текст новой области.

bUpdate
Если значение TRUE, область будет недопустима после задания текста.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

После вызова SetPaneTextнеобходимо добавить обработчик обновления пользовательского интерфейса для отображения нового текста в строке состояния.

Пример

//Sets and displays text for pane index 3 and id ID_INDICATOR_SCRL
m_wndStatusBar.SetPaneText(3, _T("My New Status Bar Text"), TRUE);

 

//UI handler in the message map updates the status bar text:
ON_UPDATE_COMMAND_UI(ID_INDICATOR_SCRL, &CMainFrame::OnUpdatePane)

 

void CMainFrame::OnUpdatePane(CCmdUI* pCmdUI)
{
   pCmdUI->Enable();
}

См. также

Пример КЛАВИШ CTRLBARS MFC
Пример DLGCBR32 MFC
Класс CControlBar
Диаграмма иерархии
Класс CStatusBarCtrl
Класс CControlBar