Класс 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 | Цвет текста строки заголовка. |
Замечания
Чтобы создать панель заголовков, выполните следующие действия.
CMFCCaptionBar
Создайте объект. Как правило, вы добавите панель заголовка в класс окна фрейма.Вызовите метод CMFCCaptionBar::Create, чтобы создать элемент управления панели заголовков и присоединить его к объекту
CMFCCaptionBar
.Вызов 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;
}
Иерархия наследования
Требования
Заголовок: 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