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


Класс 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

Требования

Заголовок: afxcaptionbar.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

См. также

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