Класс CMFCCaptionBar

CMFCCaptionBar Объект — это панель управления, которая может отображать три элемента: кнопку, текстовую метку и растровое изображение. Она может содержать только один элемент каждого типа одновременно. Можно выровнять каждый элемент по левому или правому краю элемента управления или по центру. Также можно применить плоский или трехмерный стиль к верхним и нижним границам заголовка окна.

Синтаксис

class CMFCCaptionBar : public CPane

Участники

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

Имя Описание
CMFCCaptionBar::Create Создает элемент управления подпись панели и присоединяет его к объектуCMFCCaptionBar.
CMFCCaptionBar::D oesAllowDynInsertBefore Указывает, можно ли динамически вставлять другую панель между панелью подпись и родительским кадром. (Переопределения CBasePane::D oesAllowDynInsertBefore.)
CMFCCaptionBar::EnableButton Включает или отключает кнопку на панели подпись.
CMFCCaptionBar::GetAlignment Возвращает выравнивание указанного элемента.
CMFCCaptionBar::GetBorderSize Возвращает размер границы подпись панели.
CMFCCaptionBar::GetButtonRect Извлекает ограничивающий прямоугольник кнопки на панели подпись.
CMFCCaptionBar::GetMargin Возвращает расстояние между краем элементов панели подпись и краем элемента управления подпись панели.
CMFCCaptionBar::IsMessageBarMode Указывает, находится ли панель подпись в режиме панели сообщений.
CMFCCaptionBar::RemoveBitmap Удаляет растровое изображение из панели подпись.
CMFCCaptionBar::RemoveButton Удаляет кнопку из панели подпись.
CMFCCaptionBar::RemoveIcon Удаляет значок из панели подпись.
CMFCCaptionBar::RemoveText Удаляет текстовую метку из строки подпись.
CMFCCaptionBar::SetBitmap Задает растровое изображение для панели подпись.
CMFCCaptionBar::SetBorderSize Задает размер границы подпись панели.
CMFCCaptionBar::SetButton Задает кнопку для панели подпись.
CMFCCaptionBar::SetButtonPressed Указывает, остается ли кнопка нажимаемой.
CMFCCaptionBar::SetButtonToolTip Задает подсказку для кнопки.
CMFCCaptionBar::SetFlatBorder Задает стиль границы панели подпись.
CMFCCaptionBar::SetIcon Задает значок для панели подпись.
CMFCCaptionBar::SetImageToolTip Задает подсказку для изображения для панели подпись.
CMFCCaptionBar::SetMargin Задает расстояние между краем элемента подпись панели и краем элемента управления подпись панели.
CMFCCaptionBar::SetText Задает текстовую метку для строки подпись.

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

Имя Описание
CMFCCaptionBar::OnDrawBackground Вызывается платформой для заполнения фона панели подпись.
CMFCCaptionBar::OnDrawBorder Вызывается платформой для рисования границы панели подпись.
CMFCCaptionBar::OnDrawButton Вызывается платформой для рисования кнопки подпись панели.
CMFCCaptionBar::OnDrawImage Вызывается платформой для рисования изображения подпись линейчатой панели.
CMFCCaptionBar::OnDrawText Вызывается платформой для рисования текста подпись линейчатой строки.

Элементы данных

Имя Описание
CMFCCaptionBar::m_clrBarBackground Цвет фона панели подпись.
CMFCCaptionBar::m_clrBarBorder Цвет границы подпись панели.
CMFCCaptionBar::m_clrBarText Цвет текста строки подпись.

Замечания

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

  1. CMFCCaptionBar Создайте объект. Как правило, вы добавите панель подпись в класс окна фрейма.

  2. Вызовите метод CMFCCaptionBar::Create, чтобы создать элемент управления подпись панели и присоединить его к объектуCMFCCaptionBar.

  3. Вызов CMFCCaptionBar::SetButton, CMFCCaptionBar::SetText, CMFCCaptionBar::SetIcon и CMFCCaptionBar::SetBitmap, чтобы задать элементы панели подпись.

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

Панель подпись также может работать в режиме панели сообщений, которая эмулирует панель сообщений, которая отображается в приложениях Microsoft Office 2007. В режиме панели сообщений подпись отображается растровое изображение, сообщение и кнопка (которая обычно открывает диалоговое окно). Вы можете назначить подсказку растровой карте.

Чтобы включить режим панели сообщений, вызовите CMFCCaptionBar::Create и задайте для четвертого параметра (bIsMessageBarMode) значение TRUE.

Пример

В приведенном ниже примере демонстрируется использование различных методов класса CMFCCaptionBar . В примере показано, как создать элемент управления подпись линейчатой панели, установить трехмерную границу подпись панели, задать расстояние в пикселях между краями элементов подпись панели и краем элемента управления подпись панели, задать кнопку для панели подпись, задать подсказку для кнопки, задать текстовую метку для подпись панель, задайте растровое изображение для панели подпись и задайте подсказку для изображения в строке подпись. Этот фрагмент кода является частью примера демонстрации MS Office 2007.

CMFCCaptionBar m_wndMessageBar;
BOOL CMainFrame::CreateMessageBar()
{
   // The this pointer points to a CMainFrame class which extends the CFrameWndEx class.
   if (!m_wndMessageBar.Create(WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS, this, ID_VIEW_MESSAGEBAR, -1, TRUE))
   {
      TRACE0("Failed to create caption bar\n");
      return FALSE;
   }

   m_wndMessageBar.SetFlatBorder(FALSE);
   m_wndMessageBar.SetMargin(10);
   m_wndMessageBar.SetButton(_T("Options..."), ID_TOOLS_OPTIONS, CMFCCaptionBar::ALIGN_LEFT, FALSE);
   m_wndMessageBar.SetButtonToolTip(_T("Click here to see more options"));

   m_wndMessageBar.SetText(_T("Welcome to the MFC MSOffice2007 demonstration!"), CMFCCaptionBar::ALIGN_LEFT);

   m_wndMessageBar.SetBitmap(IDB_INFO, RGB(255, 255, 255), FALSE, CMFCCaptionBar::ALIGN_LEFT);
   m_wndMessageBar.SetImageToolTip(_T("Important"), _T("Please take a look at MSOffice2007Demo source code to learn how to create advanced user interface in minutes."));

   return TRUE;
}

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

CObject

CCmdTarget

CWnd

Cbasepane

Cpane

CMFCCaptionBar

Требования

Заголовок: afx подпись bar.h

CMFCCaptionBar::Create

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

BOOL Create(
    DWORD dwStyle,
    CWnd* pParentWnd,
    UINT uID,
    int nHeight=-1,
    BOOL bIsMessageBarMode=FALSE);

Параметры

dwStyle
Логическое ИЛИ сочетание стилей строк подпись.

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

Uid
Идентификатор элемента управления подпись панели.

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

bIsMessageBarMode
ЗНАЧЕНИЕ TRUE, если панель подпись находится в режиме строки сообщений; Значение FALSE в противном случае.

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

ЗНАЧЕНИЕ TRUE, если элемент управления подпись линейчатой панели успешно создан; Значение FALSE в противном случае.

Замечания

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

CMFCCaptionBar::D oesAllowDynInsertBefore

Указывает, можно ли динамически вставлять другую панель между панелью подпись и родительским кадром.

virtual BOOL DoesAllowDynInsertBefore() const;

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

Возвращает ЗНАЧЕНИЕ FALSE, если не переопределяется.

Замечания

CMFCCaptionBar::EnableButton

Включает или отключает кнопку на панели подпись.

void EnableButton(BOOL bEnable=TRUE);

Параметры

bEnable
[in] Значение TRUE, чтобы включить кнопку, значение FALSE для отключения кнопки.

CMFCCaptionBar::GetAlignment

Возвращает выравнивание указанного элемента.

BarElementAlignment GetAlignment(BarElement elem);

Параметры

Elem
[in] Элемент панели подпись, для которого требуется получить выравнивание.

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

Выравнивание элемента, например кнопки, растрового изображения, текста или значка.

Замечания

Выравнивание элемента может быть одним из следующих значений:

  • ALIGN_INVALID

  • ALIGN_LEFT

  • ALIGN_RIGHT

  • ALIGN_CENTER

CMFCCaptionBar::GetBorderSize

Возвращает размер границы подпись панели.

int GetBorderSize() const;

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

Размер границы в пикселях.

CMFCCaptionBar::GetButtonRect

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

CRect GetButtonRect() const;

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

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

CMFCCaptionBar::GetMargin

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

int GetMargin() const;

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

Расстояние в пикселях между краями элементов панели подпись и краем элемента управления подпись панели.

CMFCCaptionBar::IsMessageBarMode

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

BOOL IsMessageBarMode() const;

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

ЗНАЧЕНИЕ TRUE, если панель подпись находится в режиме строки сообщений; Значение FALSE в противном случае.

Замечания

В режиме панели сообщений подпись отображается изображение с подсказкой, текстом сообщения и кнопкой.

CMFCCaptionBar::m_clrBarBackground

Цвет фона панели подпись.

COLORREF m_clrBarBackground

CMFCCaptionBar::m_clrBarBorder

Цвет границы подпись панели.

COLORREF m_clrBarBorder

CMFCCaptionBar::m_clrBarText

Цвет текста строки подпись.

COLORREF m_clrBarText

CMFCCaptionBar::OnDrawBackground

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

virtual void OnDrawBackground(
    CDC* pDC,
    CRect rect);

Параметры

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

rect
[in] Ограничивающий прямоугольник для заливки.

Замечания

Метод OnDrawBackground вызывается при заполнении фона панели подпись. Реализация по умолчанию заполняет фон с помощью цвета CMFCCaptionBar::m_clrBarBackground .

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

CMFCCaptionBar::OnDrawBorder

Вызывается платформой для рисования границы панели подпись.

virtual void OnDrawBorder(
    CDC* pDC,
    CRect rect);

Параметры

pDC
[in] Контекст устройства, используемый для отображения границ.

rect
[in] Ограничивающий прямоугольник.

Замечания

По умолчанию границы имеют плоский стиль.

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

CMFCCaptionBar::OnDrawButton

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

virtual void OnDrawButton(
    CDC* pDC,
    CRect rect,
    const CString& strButton,
    BOOL bEnabled);

Параметры

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

rect
[in] Ограничивающий прямоугольник кнопки.

strButton
[in] Текстовая метка кнопки.

bEnabled
[in] ЗНАЧЕНИЕ TRUE, если кнопка включена; Значение FALSE в противном случае.

Замечания

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

CMFCCaptionBar::OnDrawImage

Вызывается платформой для рисования изображения подпись линейчатой панели.

virtual void OnDrawImage(
    CDC* pDC,
    CRect rect);

Параметры

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

rect
[in] Указывает ограничивающий прямоугольник изображения.

Замечания

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

CMFCCaptionBar::OnDrawText

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

virtual void OnDrawText(
    CDC* pDC,
    CRect rect,
    const CString& strText);

Параметры

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

rect
[in] Ограничивающий прямоугольник текста.

strText
[in] Отображаемая текстовая строка.

Замечания

Реализация по умолчанию отображает текст с помощью CDC::DrawText цвета CMFCCaptionBar::m_clrBarText .

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

CMFCCaptionBar::RemoveBitmap

Удаляет растровое изображение из панели подпись.

void RemoveBitmap();

CMFCCaptionBar::RemoveButton

Удаляет кнопку из панели подпись.

void RemoveButton();

Замечания

Макет элементов панели подпись настраивается автоматически.

CMFCCaptionBar::RemoveIcon

Удаляет значок из панели подпись.

void RemoveIcon();

CMFCCaptionBar::RemoveText

Удаляет текстовую метку из строки подпись.

void RemoveText();

CMFCCaptionBar::SetBitmap

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

void SetBitmap(
    HBITMAP hBitmap,
    COLORREF clrTransparent,
    BOOL bStretch=FALSE,
    BarElementAlignment bmpAlignment=ALIGN_RIGHT);

void SetBitmap(
    UINT uiBmpResID,
    COLORREF clrTransparent,
    BOOL bStretch=FALSE,
    BarElementAlignment bmpAlignment=ALIGN_RIGHT);

Параметры

hBitmap
[in] Дескриптор заданного растрового изображения.

clrTransparent
[in] Значение RGB, указывающее прозрачный цвет растрового изображения.

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

bmpAlignment
[in] Выравнивание растрового изображения.

Замечания

Используйте этот метод, чтобы задать растровое изображение на подпись панели.

Предыдущее растровое изображение автоматически уничтожается. Если на панели подпись отображается значок, так как метод CMFCCaptionBar::SetIcon не будет отображаться, если не удалить значок, вызвав CMFCCaptionBar::RemoveIcon.

Растровое изображение выравнивается, как указано параметром bmpAlignment . Этот параметр может принимать одно из следующих значений BarElementAlignment:

  • ALIGN_INVALID

  • ALIGN_LEFT

  • ALIGN_RIGHT

  • ALIGN_CENTER

CMFCCaptionBar::SetBorderSize

Задает размер границы подпись панели.

void SetBorderSize(int nSize);

Параметры

Nsize
[in] Новый размер в пикселях границы подпись панели.

CMFCCaptionBar::SetButton

Задает кнопку для панели подпись.

void SetButton(
    LPCTSTR lpszLabel,
    UINT uiCmdUI,
    BarElementAlignment btnAlignmnet=ALIGN_LEFT,
    BOOL bHasDropDownArrow=TRUE);

Параметры

lpszLabel
Метка команды кнопки.

uiCmdUI
Идентификатор команды кнопки.

btnAlignmnet
Выравнивание кнопки.

bHasDropDownArrow
ЗНАЧЕНИЕ TRUE, если кнопка отображает стрелку раскрывающегося списка, значение FALSE в противном случае.

CMFCCaptionBar::SetButtonPressed

Указывает, остается ли кнопка нажимаемой.

void SetButtonPressed(BOOL bPresed=TRUE);

Параметры

bPresed
ЗНАЧЕНИЕ TRUE, если кнопка сохраняет состояние нажатия, значение FALSE в противном случае.

CMFCCaptionBar::SetButtonToolTip

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

void SetButtonToolTip(
    LPCTSTR lpszToolTip,
    LPCTSTR lpszDescription=NULL);

Параметры

lpszToolTip
[in] Подсказка подпись.

lpszDescription
[in] Описание подсказки.

CMFCCaptionBar::SetFlatBorder

Задает стиль границы панели подпись.

void SetFlatBorder(BOOL bFlat=TRUE);

Параметры

bFlat
[in] ЗНАЧЕНИЕ TRUE, если граница подпись бар неструктурна. ЗНАЧЕНИЕ FALSE, если граница — 3D.

CMFCCaptionBar::SetIcon

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

void SetIcon(
    HICON hIcon,
    BarElementAlignment iconAlignment=ALIGN_RIGHT);

Параметры

hIcon
[in] Дескриптор заданного значка.

iconAlignment
[in] Выравнивание значка.

Замечания

Панели заголовков могут отображать значки или растровые изображения. См. раздел CMFCCaptionBar::SetBitmap , чтобы узнать, как отобразить растровое изображение. При установке значка и растрового изображения всегда отображается значок. Вызовите CMFCCaptionBar::RemoveIcon, чтобы удалить значок из панели подпись.

Значок выравнивается в соответствии с параметром iconAlignment . Это может быть одно из следующих BarElementAlignment значений:

  • ALIGN_INVALID

  • ALIGN_LEFT

  • ALIGN_RIGHT

  • ALIGN_CENTER

CMFCCaptionBar::SetImageToolTip

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

void SetImageToolTip(
    LPCTSTR lpszToolTip,
    LPCTSTR lpszDescription=NULL);

Параметры

lpszToolTip
[in] Текст подсказки.

lpszDescription
[in] Описание подсказки.

CMFCCaptionBar::SetMargin

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

void SetMargin(int nMargin);

Параметры

nMargin
[in] Расстояние в пикселях между краями элементов панели подпись и краем элемента управления подпись панели.

CMFCCaptionBar::SetText

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

void SetText(
    const CString& strText,
    BarElementAlignment textAlignment=ALIGN_RIGHT);

Параметры

strText
[in] Заданная текстовая строка.

textAlignment
[in] Выравнивание текста.

Замечания

Метка текста выравнивается, как указано параметром textAlignment . Это может быть одно из следующих BarElementAlignment значений:

  • ALIGN_INVALID

  • ALIGN_LEFT

  • ALIGN_RIGHT

  • ALIGN_CENTER

См. также

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