Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Библиотека классов Microsoft Foundation (MFC) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.
Класс 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 | Вызывается платформой при перераскрытии области строки состояния. |
Замечания
На следующей схеме показан рисунок строки состояния из демонстрационного примера приложения строки состояния.
Примеры
В следующем примере показаны локальные переменные, которые приложение использует для вызова различных методов в 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);
Иерархия наследования
Требования
Заголовок: 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] Новый текст подсказки.