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


Класс CMFCStatusBar

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

Дополнительные сведения см. в исходном коде, расположенном в папке VC\atlmfc\src\mfc установки Visual Studio.

Синтаксис

class CMFCStatusBar : public CPane

Участники

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

Имя Описание
CMFCStatusBar::CalcFixedLayout (Переопределения CBasePane::CalcFixedLayout.)
CMFCStatusBar::CommandToIndex
CMFCStatusBar::Create Создает панель управления и присоединяет ее к объекту CPane . (Переопределения CPane::Create.)
CMFCStatusBar::CreateEx Создает панель управления и присоединяет ее к объекту CPane . (Переопределения CPane::CreateEx.)
CMFCStatusBar::D oesAllowDynInsertBefore Определяет, можно ли динамически вставлять другую панель между этой областью и родительским кадром. (Переопределения CBasePane::D oesAllowDynInsertBefore.)
CMFCStatusBar::EnablePaneDoubleClick Включает или отключает обработку мыши дважды щелкает строку состояния.
CMFCStatusBar::EnablePaneProgressBar Отображает индикатор хода выполнения на указанной панели.
CMFCStatusBar::GetCount Возвращает количество панелей в строке состояния.
CMFCStatusBar::GetDrawExtendedArea
CMFCStatusBar::GetExtendedArea
CMFCStatusBar::GetItemID
CMFCStatusBar::GetItemRect
CMFCStatusBar::GetPaneInfo
CMFCStatusBar::GetPaneProgress
CMFCStatusBar::GetPaneStyle Возвращает стиль панели. (Переопределения CBasePane::GetPaneStyle.)
CMFCStatusBar::GetPaneText
CMFCStatusBar::GetPaneWidth Возвращает ширину в пикселях указанной панели состояния.
CMFCStatusBar::GetTipText Возвращает текст подсказки средства для указанной панели состояния.
CMFCStatusBar::InvalidatePaneContent Отменяет указанную область и перерисовывает содержимое.
CMFCStatusBar::P reCreateWindow Вызывается платформой перед созданием окна Windows, подключенного к этому CWnd объекту. (Переопределения CWnd::P reCreateWindow.)
CMFCStatusBar::SetDrawExtendedArea
CMFCStatusBar::SetIndicator
CMFCStatusBar::SetPaneAnimation Назначает анимацию указанной области.
CMFCStatusBar::SetPaneBackgroundColor Задает цвет фона для указанной панели состояния.
CMFCStatusBar::SetPaneIcon Задает значок индикатора для указанной панели состояния.
CMFCStatusBar::SetPaneInfo
CMFCStatusBar::SetPaneProgress Задает текущий ход выполнения панели хода выполнения для указанной области строки состояния.
CMFCStatusBar::SetPaneStyle Задает стиль панели. (Переопределения CBasePane::SetPaneStyle.)
CMFCStatusBar::SetPaneText
CMFCStatusBar::SetPaneTextColor Задает цвет текста для указанной панели состояния.
CMFCStatusBar::SetPaneWidth Задает ширину в пикселях указанной панели состояния.
CMFCStatusBar::SetTipText Задает текст подсказки средства для указанной области строки состояния.

Защищенные методы

Имя Описание
CMFCStatusBar::OnDrawPane Вызывается платформой при перераскрытии области строки состояния.

Замечания

На следующей схеме показан рисунок строки состояния из демонстрационного примера приложения строки состояния.

Example of CMFCStatusBar.

Примеры

В следующем примере показаны локальные переменные, которые приложение использует для вызова различных методов в CMFCStatusBar классе. Эти переменные объявляются в StatusBarDemoView.h. Основной кадр объявлен в MainFrm.h, документ объявлен в StatusBarDemoDoc.h, а представление объявляется в StatusBarDemoView.h. Этот фрагмент кода является частью примера демонстрации строки состояния.

int m_nProgressCurr;
BOOL m_bInProgress;

CImageList m_imlStatusAnimation;
BOOL m_bInAnimation;

CBitmap m_bmpIcon1;
CBitmap m_bmpIcon2;

В следующем примере показано, как получить ссылку на CMFCStatusBar объект, введя GetStatusBar метод в MainFrm.h, а затем вызывая этот метод из GetStatusBar метода в StatusBarDemoView.h. Этот фрагмент кода является частью примера демонстрации строки состояния.

// in MainFrm.h
public:
CMFCStatusBar &GetStatusBar()
{
   return m_wndStatusBar;
}
// in StatusBarDemoView.h
CMFCStatusBar &GetStatusBar() const
{
   return ((CMainFrame *)AfxGetMainWnd())->GetStatusBar();
}

В следующем примере показано, как вызывать различные методы в CMFCStatusBar классе в StatusBarDemoView.cpp. Константы объявляются в MainFrm.h. В примере показано, как задать значок, задать текст подсказки панели состояния, отобразить индикатор хода выполнения на указанной панели, назначить анимацию указанной панели, задать текст и ширину панели состояния и задать текущий индикатор хода выполнения панели состояния для панели состояния. Этот фрагмент кода является частью примера демонстрации строки состояния.

// in MainFrm.h
const int nStatusIcon = 0;
const int nStatusInfo = 1;
const int nStatusProgress = 2;
const int nStatusLabel = 3;
const int nStatusAnimation = 4;
// in StatusBarDemoView.cpp
GetStatusBar().SetPaneIcon(nStatusIcon, m_bmpIcon1);
GetStatusBar().SetTipText(nStatusIcon, _T("This is a tooltip"));
GetStatusBar().EnablePaneProgressBar(nStatusProgress, PROGRESS_MAX);
GetStatusBar().SetPaneAnimation(nStatusAnimation, NULL);
GetStatusBar().SetPaneAnimation(nStatusAnimation, m_imlStatusAnimation);
GetStatusBar().SetPaneText(nStatusAnimation, _T(""));
GetStatusBar().SetPaneWidth(nStatusAnimation, 16);
GetStatusBar().SetPaneProgress(nStatusProgress, m_nProgressCurr);

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

CObject

CCmdTarget

CWnd

Cbasepane

Cpane

CMFCStatusBar

Требования

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

CMFCStatusBar::CalcFixedLayout

virtual CSize CalcFixedLayout(
    BOOL bStretch,
    BOOL bHorz);

Параметры

[in] bStretch
[in] bHorz

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

Замечания

CMFCStatusBar::CommandToIndex

int CommandToIndex(UINT nIDFind) const;

Параметры

[in] nIDFind

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

Замечания

CMFCStatusBar::Create

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

Параметры

[in] pParentWnd
[in] dwStyle
[in] Nid

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

Замечания

CMFCStatusBar::CreateEx

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

Параметры

[in] pParentWnd
[in] dwCtrlStyle
[in] dwStyle
[in] Nid

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

Замечания

CMFCStatusBar::D oesAllowDynInsertBefore

virtual BOOL DoesAllowDynInsertBefore() const;

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

Замечания

CMFCStatusBar::EnablePaneDoubleClick

Включает или отключает обработку мыши дважды щелкает строку состояния.

void EnablePaneDoubleClick(BOOL bEnable=TRUE);

Параметры

bEnable
[in] Если значение TRUE, включите обработку дважды щелкните мышь. В противном случае отключите обработку дважды щелкните мышь.

Замечания

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

CMFCStatusBar::EnablePaneProgressBar

Отображение индикатора выполнения на указанной панели.

void EnablePaneProgressBar(
    int nIndex,
    long nTotal=100,
    BOOL bDisplayText=FALSE,
    COLORREF clrBar=-1,
    COLORREF clrBarDest=-1,
    COLORREF clrProgressText=-1);

Параметры

Nindex
[in] Задает индекс панели, индикатор выполнения которой необходимо включить.

nTotal
[in] Задает максимальное значение для панели выполнения.

bDisplayText
[in] Указывает, должен ли индикатор хода выполнения отображать текущее значение хода выполнения.

clrBar
[in] Задает цвет фона индикатора выполнения.

clrBarDest
[in] Указывает дополнительный цвет фона панели выполнения. Используйте другое значение, чем clrBar , чтобы заполнить цветом, смешанным в градиент.

clrProgressText
[in] Задает цвет текста строки выполнения.

Замечания

Если вы хотите отключить вызов EnablePaneProgressBar индикатора хода выполнения с nTotal , равным -1. По умолчанию nTotal имеет значение 100. Поэтому для отображения хода выполнения в процентах не требуется никаких дополнительных вычислений.

Необходимо передать различные значения для clrBar и clrBarDest , чтобы цвет фона панели выполнения отображал цвет, смешанный в градиент. .

Чтобы задать текущий ход выполнения, вызовите метод CMFCStatusBar::SetPaneProgress .

CMFCStatusBar::GetCount

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

int GetCount() const;

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

Количество панелей в строке состояния.

CMFCStatusBar::GetDrawExtendedArea

BOOL GetDrawExtendedArea() const;

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

Замечания

CMFCStatusBar::GetExtendedArea

virtual BOOL GetExtendedArea(CRect& rect) const;

Параметры

[in] rect

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

Замечания

CMFCStatusBar::GetItemID

UINT GetItemID(int nIndex) const;

Параметры

[in] Nindex

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

Замечания

CMFCStatusBar::GetItemRect

void GetItemRect(
    int nIndex,
    LPRECT lpRect) const;

Параметры

[in] Nindex
[in] lpRect

Замечания

CMFCStatusBar::GetPaneInfo

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

Параметры

[in] Nindex
[in] Nid
[in] nStyle
[in] cxWidth

Замечания

CMFCStatusBar::GetPaneProgress

long GetPaneProgress(int nIndex) const;

Параметры

[in] Nindex

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

Замечания

CMFCStatusBar::GetPaneStyle

UINT GetPaneStyle(int nIndex) const;

Параметры

[in] Nindex

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

Замечания

CMFCStatusBar::GetPaneText

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

CString GetPaneText(int nIndex) const;

Параметры

[in] Nindex
[in] s

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

Замечания

CMFCStatusBar::GetPaneWidth

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

int GetPaneWidth(int nIndex) const;

Параметры

Nindex
[in] Указывает индекс панели состояния.

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

Ширина панели состояния, указываемой nIndex ; в противном случае — ноль, если панель состояния не существует.

CMFCStatusBar::GetTipText

Получите текст подсказки панели состояния.

CString GetTipText(int nIndex) const;

Параметры

Nindex
[in] Указывает индекс области, для которой требуется получить текст подсказки средства.

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

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

CMFCStatusBar::InvalidatePaneContent

Отмените область состояния и перерисуйте его содержимое.

void InvalidatePaneContent(int nIndex);

Параметры

Nindex
[in] Указывает индекс области, содержимое которой должно быть недействительным и перезаписано.

Замечания

Если строка состояния недопустима, она помечается для перераскрытия. Windows перерисовывает его, когда UpdateWindow метод отправляет в метод WM_PAINT сообщение OnPaint .

CMFCStatusBar::OnDrawPane

Перерисовка области строки состояния.

virtual void OnDrawPane(
    CDC* pDC,
    CMFCStatusBarPaneInfo* pPane);

Параметры

pDC
[in] Указатель на контекст устройства для рисования.

pPane
[in] Указатель на CMFCStatusBarPaneInfo структуру, содержащую сведения о области, которую необходимо перезавести.

Замечания

По умолчанию OnDrawPane перерисовывает область с помощью pDC контекста устройства в соответствии со стилем и содержимым панели.

Переопределите этот метод в производном CMFCStatusBarклассе, чтобы настроить внешний вид панели.

CMFCStatusBar::P reCreateWindow

virtual BOOL PreCreateWindow(CREATESTRUCT& cs);

Параметры

[in] Cs

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

Замечания

CMFCStatusBar::SetDrawExtendedArea

void SetDrawExtendedArea(BOOL bSet = TRUE);

Параметры

[in] bSet

Замечания

CMFCStatusBar::SetIndicator

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

Параметры

[in] lpIDArray
[in] nIDCount

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

Замечания

CMFCStatusBar::SetPaneAnimation

Назначает анимацию указанной области.

void SetPaneAnimation(
    int nIndex,
    HIMAGELIST hImageList,
    UINT nFrameRate=500,
    BOOL bUpdate=TRUE);

Параметры

Nindex
[in] Указывает индекс области, которой требуется назначить анимацию.

hImageList
[in] Задает дескриптор списка изображений, в котором хранятся кадры анимации.

nFrameRate
[in] Задает частоту кадров в миллисекундах для анимации.

bUpdate
[in] Если значение TRUE, обновите содержимое панели немедленно. В противном случае содержимое области обновляется при его недопустимом изменении.

Замечания

Если вы хотите отключить текущую анимацию, вызов SetPaneAnimation с hImageList заданным значением NULL.

CMFCStatusBar::SetPaneBackgroundColor

Задает цвет фона панели состояния.

void SetPaneBackgroundColor(
    int nIndex,
    COLORREF clrBackground=(COLORREF)-1,
    BOOL bUpdate=TRUE);

Параметры

Nindex
[in] Указывает индекс области, для которой необходимо задать новый цвет фона.

clrBackground
[in] Задает новый цвет фона.

bUpdate
[in] Если значение TRUE, обновите содержимое панели немедленно. В противном случае не обновляйте содержимое панели, пока область не будет недопустим другим методом.

CMFCStatusBar::SetPaneIcon

Задайте значок панели состояния.

void SetPaneIcon(
    int nIndex,
    HICON hIcon,
    BOOL bUpdate=TRUE);

void SetPaneIcon(
    int nIndex,
    HBITMAP hBmp,
    COLORREF clrTransparent=RGB(255, 0, 255),
    BOOL bUpdate=TRUE);

Параметры

Nindex
[in] Указывает индекс области, для которой необходимо задать изображение.

hIcon
[in] Указывает дескриптор значка, который нужно задать в качестве изображения панели.

bUpdate
[in] Указывает, следует ли немедленно обновлять содержимое области.

hBmp
[in] Указывает дескриптор растрового изображения, который необходимо задать в качестве изображения панели.

clrTransparent
[in] Указывает прозрачный цвет растрового изображения, указываемого hBmp .

Замечания

Вы можете передать HICON или HBITMAP вместе с прозрачным цветом, чтобы задать изображение панели. Если вы больше не хотите отображать изображение, передайте значение NULL в дескриптор изображения.

Если есть какая-либо выполняющаяся анимация, заданная CMFCStatusBar::SetPaneAnimation , анимация будет остановлена.

CMFCStatusBar::SetPaneInfo

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

Параметры

[in] Nindex
[in] Nid
[in] nStyle
[in] cxWidth

Замечания

CMFCStatusBar::SetPaneProgress

Задайте текущий индикатор хода выполнения панели хода выполнения для указанной области.

void SetPaneProgress(
    int nIndex,
    long nCurr,
    BOOL bUpdate=TRUE);

Параметры

Nindex
[in] Указывает индекс области, для которой необходимо обновить индикатор хода выполнения.

nCurr
[in] Указывает текущее значение индикатора хода выполнения.

bUpdate
[in] Указывает, должна ли панель обновляться немедленно.

Замечания

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

Чтобы использовать эту функцию для данной панели, сначала необходимо вызвать CMFCStatusBar::EnablePaneProgressBar .

CMFCStatusBar::SetPaneStyle

void SetPaneStyle(
    int nIndex,
    UINT nStyle);

Параметры

[in] Nindex
[in] nStyle

Замечания

CMFCStatusBar::SetPaneText

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

Параметры

[in] Nindex
[in] lpszNewText
[in] bUpdate

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

Замечания

CMFCStatusBar::SetPaneTextColor

Задает цвет текста указанной области.

void SetPaneTextColor(
    int nIndex,
    COLORREF clrText=(COLORREF)-1,
    BOOL bUpdate=TRUE);

Параметры

Nindex
[in] Указывает индекс области, в которую требуется назначить новый цвет текста.

clrText
[in] Задает цвет текста.

bUpdate
[in] Если значение TRUE, обновите содержимое панели немедленно. В противном случае не обновляйте содержимое панели, пока область не будет недопустим другим методом.

CMFCStatusBar::SetPaneWidth

Задайте ширину панели состояния.

void SetPaneWidth(
    int nIndex,
    int cx);

Параметры

Nindex
[in] Индекс панели состояния, для которой необходимо задать новую ширину.

cx
[in] Новая ширина панели состояния в пикселях.

CMFCStatusBar::SetTipText

Задайте текст подсказки панели состояния.

void SetTipText(
    int nIndex,
    LPCTSTR pszTipText);

Параметры

Nindex
[in] Индекс области, на которую нужно назначить текст подсказки.

pszTipText
[in] Новый текст подсказки.

См. также

Диаграмма иерархии
Классы
Класс CPane
Класс CStatusBar