Класс CStatusBarCtrl

Предоставляет функциональные возможности стандартного элемента управления "индикатор статуса" Windows.

Синтаксис

class CStatusBarCtrl : public CWnd

Участники

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

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

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

Имя Описание
CStatusBarCtrl::Create Создает элемент управления строки состояния и присоединяет его к объекту CStatusBarCtrl .
CStatusBarCtrl::CreateEx Создает элемент управления строки состояния с указанными расширенными стилями Windows и присоединяет его к объекту CStatusBarCtrl .
CStatusBarCtrl::D rawItem Вызывается, когда визуальный аспект элемента управления "Строка состояния владельца" изменяется.
CStatusBarCtrl::GetBorders Извлекает текущие ширины горизонтальных и вертикальных границ элемента управления строк состояния.
CStatusBarCtrl::GetIcon Извлекает значок для части (также известной как панель) в текущем элементе управления строки состояния.
CStatusBarCtrl::GetParts Извлекает количество частей в элементе управления строкой состояния.
CStatusBarCtrl::GetRect Извлекает ограничивающий прямоугольник части в элементе управления строкой состояния.
CStatusBarCtrl::GetText Извлекает текст из заданной части элемента управления строки состояния.
CStatusBarCtrl::GetTextLength Извлеките длину текста в символах из заданной части элемента управления строк состояния.
CStatusBarCtrl::GetTipText Извлекает текст подсказки для области в строке состояния.
CStatusBarCtrl::IsSimple Проверяет элемент управления окном состояния, чтобы определить, находится ли он в простом режиме.
CStatusBarCtrl::SetBkColor Задает цвет фона в строке состояния.
CStatusBarCtrl::SetIcon Задает значок области в строке состояния.
CStatusBarCtrl::SetMinHeight Задает минимальную высоту области рисования панели состояния.
CStatusBarCtrl::SetParts Задает количество частей в элементе управления строкой состояния и координату правого края каждой части.
CStatusBarCtrl::SetSimple Указывает, отображается ли элемент управления состоянием простой текст или отображаются все элементы управления, заданные предыдущим вызовом SetParts.
CStatusBarCtrl::SetText Задает текст в указанной части элемента управления "Строка состояния".
CStatusBarCtrl::SetTipText Задает текст подсказки для области в строке состояния.

Замечания

Элемент управления строкой состояния — это горизонтальное окно, которое обычно отображается в нижней части родительского окна, в котором приложение может отображать различные типы сведений о состоянии. Элемент управления "Строка состояния" можно разделить на части, чтобы отобразить несколько типов сведений.

Этот элемент управления (и, следовательно CStatusBarCtrl , класс) доступен только для программ под управлением Windows 95/98 и Windows NT версии 3.51 и более поздних версий.

Дополнительные сведения об использовании CStatusBarCtrlсм. в разделе "Элементы управления " и "Использование CStatusBarCtrl".

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

CObject

CCmdTarget

CWnd

CStatusBarCtrl

Требования

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

CStatusBarCtrl::Create

Создает элемент управления строки состояния и присоединяет его к объекту CStatusBarCtrl .

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Параметры

dwStyle
Задает стиль элемента управления строкой состояния. Примените любое сочетание стилей элементов управления строк состояния, перечисленных в стилях common Control в пакете SDK для Windows. Этот параметр должен включать стиль WS_CHILD. Он также должен включать стиль WS_VISIBLE.

rect
Указывает размер и позицию элемента управления строкой состояния. Это может быть объект CRect или структура RECT .

pParentWnd
Указывает родительское окно элемента управления строкой состояния, как правило, .CDialog Он не должен иметь значение NULL.

Nid
Указывает идентификатор элемента управления строки состояния.

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

Ненулевое значение в случае успеха, иначе — 0.

Замечания

Вы создаете два CStatusBarCtrl шага. Сначала вызовите конструктор, а затем вызов Create, который создает элемент управления строк состояния и присоединяет его к объекту CStatusBarCtrl .

Позиция по умолчанию окна состояния находится в нижней части родительского окна, но можно указать стиль CCS_TOP, чтобы он отображалась в верхней части клиентской области родительского окна. Вы можете указать стиль SBARS_SIZEGRIP, чтобы включить сцепление размера в правом конце окна состояния. Объединение стилей CCS_TOP и SBARS_SIZEGRIP не рекомендуется, так как результирующий сцепление размера не работает, даже если система рисует ее в окне состояния.

Чтобы создать строку состояния с расширенными стилями окон, вызовите CStatusBarCtrl::CreateEx вместо Create.

Пример

VERIFY(m_wndSBC.Create(WS_CHILD | WS_VISIBLE | CCS_BOTTOM | SBARS_SIZEGRIP,
                       CRect(0, 0, 0, 0), this, IDC_STATUSBARCTRL));

CStatusBarCtrl::CreateEx

Создает элемент управления (дочернее окно) и связывает его с CStatusBarCtrl объектом.

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Параметры

dwExStyle
Задает расширенный стиль создаваемого элемента управления. Список расширенных стилей Windows см. в параметре dwExStyle для CreateWindowEx в пакете SDK для Windows.

dwStyle
Задает стиль элемента управления строкой состояния. Примените любое сочетание стилей элементов управления строк состояния, перечисленных в стилях common Control в пакете SDK для Windows. Этот параметр должен включать стиль WS_CHILD. Он также должен включать стиль WS_VISIBLE.

rect
Ссылка на структуру RECT , описывающую размер и положение создаваемого окна в координатах клиента pParentWnd.

pParentWnd
Указатель на окно, которое является родительским элементом элемента управления.

Nid
Идентификатор дочернего окна элемента управления.

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

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

Замечания

Используйте CreateEx вместо создания расширенные стили Windows, указанные предисловием расширенного стиля Windows WS_EX_.

CStatusBarCtrl::CStatusBarCtrl

Формирует объект CStatusBarCtrl.

CStatusBarCtrl();

CStatusBarCtrl::D rawItem

Вызывается платформой, когда визуальный аспект элемента управления "Строка состояния владельца" изменяется.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

Параметры

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

Замечания

Элемент itemActionDRAWITEMSTRUCT структуры определяет действие рисования, которое необходимо выполнить.

По умолчанию эта функция-член ничего не делает. Переопределите эту функцию-член, чтобы реализовать рисование для объекта owner-draw CStatusBarCtrl .

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

CStatusBarCtrl::GetBorders

Извлекает текущие ширины элемента управления состояния горизонтальных и вертикальных границ и пространства между прямоугольниками.

BOOL GetBorders(int* pBorders) const;

BOOL GetBorders(
    int& nHorz,
    int& nVert,
    int& nSpacing) const;

Параметры

pBorders
Адрес целочисленного массива с тремя элементами. Первый элемент получает ширину горизонтальной границы, второй получает ширину вертикальной границы, а третья получает ширину границы между прямоугольниками.

nHorz
Ссылка на целое число, которое получает ширину горизонтальной границы.

nVert
Ссылка на целое число, которое получает ширину вертикальной границы.

nSpacing
Ссылка на целое число, которое получает ширину границы между прямоугольниками.

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

Ненулевое значение в случае успеха, иначе — 0.

Замечания

Эти границы определяют интервал между внешним краем элемента управления и прямоугольниками в элементе управления, содержащим текст.

Пример

RECT rectPane1;
VERIFY(m_wndSBC.GetRect(1, &rectPane1));

int borderArray[3];
VERIFY(m_wndSBC.GetBorders(borderArray));

int nHorz, nVert, nSpacing;
VERIFY(m_wndSBC.GetBorders(nHorz, nVert, nSpacing));

CStatusBarCtrl::GetIcon

Извлекает значок для части (также известной как панель) в текущем элементе управления строки состояния.

HICON GetIcon(int iPart) const;

Параметры

Параметрической детали
[in] Отсчитываемый от нуля индекс части, содержащей полученный значок. Если этот параметр равен -1, то предполагается, что строка состояния является простой строкой состояния режима.

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

Дескриптор значка, если метод выполнен успешно; в противном случае значение NULL.

Замечания

Этот метод отправляет сообщение SB_GETICON , описанное в пакете SDK для Windows.

Элемент управления строкой состояния состоит из строки текстовых областей вывода, которые также называются частями. Дополнительные сведения о строке состояния см. в разделе "Реализация строки состояния" в MFC и настройка режима объекта CStatusBarCtrl.

Пример

Первый пример кода определяет переменную, m_statusBarкоторая используется для доступа к текущему элементу управления строк состояния. Эта переменная используется в следующем примере.

public:
CStatusBarCtrl m_statusBar;

Следующий пример кода копирует значок в две области текущего элемента управления строк состояния. В предыдущем разделе примера кода мы создали элемент управления строк состояния с тремя панелями, а затем добавили значок в первую область. Этот пример извлекает значок из первой области, а затем добавляет его во вторую и третью область.

// Get the icon from pane 1 and set it in panes 2 and 3.
HICON hIcon = m_statusBar.GetIcon(0);
m_statusBar.SetIcon(1, hIcon);
m_statusBar.SetIcon(2, hIcon);

CStatusBarCtrl::GetParts

Извлекает количество частей в элементе управления строкой состояния.

int GetParts(
    int nParts,
    int* pParts) const;

Параметры

nParts
Количество частей, для которых требуется получить координаты. Если этот параметр больше количества частей в элементе управления, сообщение извлекает координаты только для существующих частей.

pParts
Адрес целочисленного массива с таким же числом элементов, что и количество частей, указанных nParts. Каждый элемент в массиве получает клиентская координата правого края соответствующей части. Если для элемента задано значение - 1, позиция правого края для этой части расширяется до правого края строки состояния.

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

Количество частей элемента управления в случае успешного выполнения или нуля.

Замечания

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

Пример

int pParts[2];

int nParts = m_wndSBC.GetParts(2, pParts);

CStatusBarCtrl::GetRect

Извлекает ограничивающий прямоугольник части в элементе управления строкой состояния.

BOOL GetRect(
    int nPane,
    LPRECT lpRect) const;

Параметры

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

lpRect
Адрес структуры RECT, получающей ограничивающий прямоугольник.

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

Ненулевое значение в случае успеха, иначе — 0.

Пример

CRect rectPane1;

VERIFY(m_wndSBC.GetRect(1, &rectPane1));

CStatusBarCtrl::GetText

Извлекает текст из заданной части элемента управления строки состояния.

CString GetText(
    int nPane,
    int* pType = NULL) const;

int GetText(
    LPCTSTR lpszText,
    int nPane,
    int* pType = NULL) const;

Параметры

lpszText
Адрес буфера, получающего текст. Этот параметр является строкой, завершающейся значением NULL.

nPane
Отсчитываемый от нуля индекс части, из которой требуется получить текст.

pType
Указатель на целое число, которое получает сведения о типе. Тип может быть одним из следующих значений:

  • 0 Текст рисуется с границей, чтобы показаться ниже плоскости строки состояния.

  • SBT_NOBORDERS текст рисуется без границ.

  • SBT_POPOUT текст рисуется с границей, чтобы показаться выше плоскости строки состояния.

  • SBT_OWNERDRAW Если текст имеет тип документа SBT_OWNERDRAW, pType получает это сообщение и возвращает 32-разрядное значение, связанное с текстом, а не типом длины и операции.

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

Длина в символах текста или CString , содержащего текущий текст.

Пример

int nType;
TCHAR *pszPaneOneText;

pszPaneOneText = new TCHAR[m_wndSBC.GetTextLength(1, &nType) + 1];
int nTextLength = m_wndSBC.GetText(pszPaneOneText, 1, &nType);

switch (nType)
{
case 0:
   // Text is drawn with a border to appear lower than the
   // plane of the status bar
   break;
case SBT_NOBORDERS:
   // text is drawn without borders
   break;
case SBT_OWNERDRAW:
   // Text is drawn by the parent window
   break;
case SBT_POPOUT:
   // Text is drawn with a border to appear higher than the
   // plane of the status bar
   break;
}

delete pszPaneOneText;

CStatusBarCtrl::GetTextLength

Извлекает длину текста в символах из заданной части элемента управления строк состояния.

int GetTextLength(
    int nPane,
    int* pType = NULL) const;

Параметры

nPane
Отсчитываемый от нуля индекс части, из которой требуется получить текст.

pType
Указатель на целое число, которое получает сведения о типе. Тип может быть одним из следующих значений:

  • 0 Текст рисуется с границей, чтобы показаться ниже плоскости строки состояния.

  • SBT_NOBORDERS текст рисуется без границ.

  • SBT_OWNERDRAW Текст рисуется родительским окном.

  • SBT_POPOUT текст рисуется с границей, чтобы показаться выше плоскости строки состояния.

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

Длина текста в символах.

Пример

int nType;
int nLength = m_wndSBC.GetTextLength(0, &nType);

switch (nType)
{
case 0:
   // Text is drawn with a border to appear lower than the
   // plane of the status bar
   break;
case SBT_NOBORDERS:
   // text is drawn without borders
   break;
case SBT_OWNERDRAW:
   // Text is drawn by the parent window
   break;
case SBT_POPOUT:
   // Text is drawn with a border to appear higher than the
   // plane of the status bar
   break;
}

CStatusBarCtrl::GetTipText

Извлекает текст подсказки для области в строке состояния.

CString GetTipText(int nPane) const;

Параметры

nPane
Отсчитываемый от нуля индекс панели состояния для получения текста подсказки.

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

Объект CString , содержащий текст, используемый в подсказке.

Замечания

Эта функция-член реализует поведение сообщения Win32 SB_GETTIPTEXT, как описано в пакете SDK для Windows.

Пример

CString csPane0TipText = m_wndSBC.GetTipText(0);

CStatusBarCtrl::IsSimple

Проверяет элемент управления окном состояния, чтобы определить, находится ли он в простом режиме.

BOOL IsSimple() const;

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

Ненулевое значение, если элемент управления окном состояния находится в простом режиме; в противном случае ноль.

Замечания

Эта функция-член реализует поведение сообщения Win32 SB_ISSIMPLE, как описано в пакете SDK для Windows.

CStatusBarCtrl::SetBkColor

Задает цвет фона в строке состояния.

COLORREF SetBkColor(COLORREF cr);

Параметры

Cr
Значение COLORREF, указывающее новый цвет фона. Укажите значение CLR_DEFAULT, чтобы строка состояния использовала цвет фона по умолчанию.

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

Значение COLORREF , представляющее предыдущий цвет фона по умолчанию.

Замечания

Эта функция-член реализует поведение сообщения Win32 SB_SEТБ KCOLOR, как описано в пакете SDK для Windows.

Пример

m_wndSBC.SetBkColor(RGB(0, 0, 250));

HICON hIcon = AfxGetApp()->LoadIcon(IDI_PANE_0_ICON);
VERIFY(hIcon);
VERIFY(m_wndSBC.SetIcon(0, hIcon));

CStatusBarCtrl::SetIcon

Задает значок области в строке состояния.

BOOL SetIcon(
    int nPane,
    HICON hIcon);

Параметры

nPane
Отсчитываемый от нуля индекс области, который получит значок. Если этот параметр равен -1, то предполагается, что строка состояния является простой строкой состояния.

hIcon
Дескриптор для заданного значка. Если это значение равно NULL, значок удаляется из части.

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

Ненулевое значение в случае успеха, иначе — 0.

Замечания

Эта функция-член реализует поведение SB_SETICON сообщения Win32, как описано в пакете SDK для Windows.

Пример

См. пример CStatusBarCtrl ::SetBkColor.

CStatusBarCtrl::SetMinHeight

Задает минимальную высоту области рисования панели состояния.

void SetMinHeight(int nMin);

Параметры

nMin
Минимальная высота элемента управления в пикселях.

Замечания

Минимальная высота — это сумма nMin и в два раза ширина в пикселях вертикальной границы элемента управления строк состояния.

Пример

m_wndSBC.SetMinHeight(40);

CStatusBarCtrl::SetParts

Задает количество частей в элементе управления строкой состояния и координату правого края каждой части.

BOOL SetParts(
    int nParts,
    int* pWidths);

Параметры

nParts
Количество заданных частей. Число частей не может превышать 255.

pWidths
Адрес целочисленного массива с таким же количеством элементов, что и части, указанные nParts. Каждый элемент в массиве указывает позицию в координатах клиента справа от соответствующей части. Если элемент равен - 1, позиция правого края для этой части расширяется до правого края элемента управления.

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

Ненулевое значение в случае успеха, иначе — 0.

Пример

const int c_nParts = 4;
CRect rect;

m_wndSBC.GetClientRect(&rect);
int aWidths[c_nParts] = {rect.right - 300, rect.right - 200, rect.right - 100,
                         -1};

VERIFY(m_wndSBC.SetParts(c_nParts, aWidths));

CStatusBarCtrl::SetSimple

Указывает, отображается ли элемент управления состоянием простой текст или отображаются все элементы управления, заданные предыдущим вызовом SetParts.

BOOL SetSimple(BOOL bSimple = TRUE);

Параметры

bSimple
[in] Флаг типа отображения. Если этот параметр имеет значение TRUE, элемент управления отображает простой текст; Если значение равно FALSE, отображается несколько частей.

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

Всегда возвращает 0.

Замечания

Если приложение изменяет элемент управления строкой состояния с не простого на простое или наоборот, система немедленно перерисовывает элемент управления.

CStatusBarCtrl::SetText

Задает текст в указанной части элемента управления "Строка состояния".

BOOL SetText(
    LPCTSTR lpszText,
    int nPane,
    int nType);

Параметры

lpszText
Адрес в виде оканчивающейся нулем строки, в которой указан необходимый текст. Если nType SBT_OWNERDRAW, lpszText представляет 32 бита данных.

nPane
Отсчитываемый от нуля индекс настраиваемой части. Если это значение равно 255, строка состояния считается простым элементом управления, состоящим из одной части.

nType
Тип операции отрисовки. Список возможных значений см . в SB_SETTEXT сообщении .

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

Ненулевое значение в случае успеха, иначе — 0.

Замечания

Сообщение отменяет часть измененного элемента управления, что приводит к отображению нового текста при следующем получении сообщения WM_PAINT.

Пример

VERIFY(m_wndSBC.SetText(_T("Text For Pane 1"), 1, 0));

CStatusBarCtrl::SetTipText

Задает текст подсказки для области в строке состояния.

void SetTipText(
    int nPane,
    LPCTSTR pszTipText);

Параметры

nPane
Отсчитываемый от нуля индекс панели состояния для получения текста подсказки.

pszTipText
Указатель на строку, содержащую текст подсказки.

Замечания

Эта функция-член реализует поведение сообщения Win32 SB_SETTIPTEXT, как описано в пакете SDK для Windows.

Пример

m_wndSBC.SetTipText(0, _T("This is Pane 0"));

См. также

Класс CWnd
Диаграмма иерархии
Класс CToolBarCtrl