Класс 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;
}
Иерархия наследования
Требования
Заголовок: 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
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по