Класс CMFCAutoHideBar
Класс CMFCAutoHideBar
— это специальный класс панели инструментов, реализующий возможность автоматического скрытия.
Дополнительные сведения см. в исходном коде, расположенном в папке VC\atlmfc\src\mfc установки Visual Studio.
Синтаксис
class CMFCAutoHideBar : public CPane
Участники
Открытые конструкторы
Имя | Описание |
---|---|
CMFCAutoHideBar::CMFCAutoHideBar |
Открытые методы
Имя | Описание |
---|---|
CMFCAutoHideBar::AddAutoHideWindow | |
CMFCAutoHideBar::AllowShowOnPaneMenu | (Переопределяет CPane::AllowShowOnPaneMenu .) |
CMFCAutoHideBar::CalcFixedLayout | (Переопределения CBasePane::CalcFixedLayout.) |
CMFCAutoHideBar::Create | Создает панель управления и присоединяет ее к объекту CPane . (Переопределения CPane::Create.) |
CMFCAutoHideBar::GetFirstAHWindow | |
CMFCAutoHideBar::GetVisibleCount | |
CMFCAutoHideBar::OnShowControlBarMenu | Вызывается платформой непосредственно перед отображением меню особой панели. (Переопределения CPane::OnShowControlBarMenu.) |
CMFCAutoHideBar::RemoveAutoHideWindow | |
CMFCAutoHideBar::SetActiveInGroup | (Переопределения CPane::SetActiveInGroup.) |
CMFCAutoHideBar::SetRecentVisibleState | |
CMFCAutoHideBar::ShowAutoHideWindow | |
CMFCAutoHideBar::StretchPane | Растягивает панель по вертикали или горизонтали. (Переопределения CBasePane::StretchPane.) |
CMFCAutoHideBar::UnSetAutoHideMode | |
CMFCAutoHideBar::UpdateVisibleState |
Элементы данных
Имя | Описание |
---|---|
CMFCAutoHideBar::m_nShowAHWndDelay | Задержка времени между моментом, когда пользователь помещает курсор мыши на класс CMFCAutoHideButton и момент, когда платформа отображает связанное окно. |
Замечания
Когда пользователь переключает область закрепления в режим автоматического скрытия, платформа автоматически создает объект CMFCAutoHideBar
. Он также создает необходимые объекты CAutoHideDockSite и CMFCAutoHideButton . Каждый объект CAutoHideDockSite
связан с определенным объектом CMFCAutoHideButton
.
Класс CMFCAutoHideBar
реализует отображение объекта CAutoHideDockSite
, когда пользователь наводит указатель мыши на объект CMFCAutoHideButton
. Когда панель инструментов получает сообщение WM_MOUSEMOVE, объект CMFCAutoHideBar
запускает таймер. Когда отсчет завершается, панели инструментов отправляется уведомление о событии WM_TIMER. Панель инструментов обрабатывает это событие, проверяя, расположен ли указатель мыши на той же кнопке автоматического скрытия, на которой он находился при запуске таймера. В случае положительного результата отображается прикрепленный объект CAutoHideDockSite
.
Длительность задержки таймера можно регулировать с помощью параметра m_nShowAHWndDelay
. Значение по умолчанию составляет 400 мс.
Пример
В этом примере демонстрируется создание объекта CMFCAutoHideBar
и использование его метода GetDockSiteRow
.
CMFCAutoHideBar *pParentBar = new CMFCAutoHideBar();
CDockingPanesRow *pParentRow = pParentBar->GetDockSiteRow();
Иерархия наследования
Требования
Заголовок: afxautohidebar.h
CMFCAutoHideBar::AddAutoHideWindow
Добавляет в окно CDockablePane
функциональные возможности, которые позволяют ему выполнять автоматическое скрытие.
CMFCAutoHideButton* AddAutoHideWindow(
CDockablePane* pAutoHideWnd,
DWORD dwAlignment);
Параметры
pAutoHideWnd
[in] Окно, которое нужно скрыть.
dwAlignment
[in] Значение, указывающее выравнивание кнопки автоматического скрытия с окном приложения.
Возвращаемое значение
Замечания
Параметр dwAlignment указывает, где находится кнопка автоматического скрытия в приложении. Параметру может быть присвоено одно из следующих значений:
CBRS_ALIGN_LEFT
CBRS_ALIGN_RIGHT
CBRS_ALIGN_TOP
CBRS_ALIGN_BOTTOM
CMFCAutoHideBar::AllowShowOnPaneMenu
virtual BOOL AllowShowOnPaneMenu() const;
Возвращаемое значение
Замечания
CMFCAutoHideBar::CalcFixedLayout
virtual CSize CalcFixedLayout(
BOOL bStretch,
BOOL bHorz);
Параметры
[in] bStretch
[in] bHorz
Возвращаемое значение
Замечания
CMFCAutoHideBar::CMFCAutoHideBar
Создает объект CMFCAutoHideBar.
CMFCAutoHideBar();
Замечания
CMFCAutoHideBar::Create
virtual BOOL Create(
LPCTSTR lpszClassName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
DWORD dwControlBarStyle = AFX_DEFAULT_PANE_STYLE,
CCreateContext* pContext = NULL);
Параметры
lpszClassName
dwStyle
rect
pParentWnd
nID
dwControlBarStyle
pContext
Возвращаемое значение
Замечания
CMFCAutoHideBar::GetFirstAHWindow
Возвращает указатель на первое окно автоматического скрытия в приложении.
CDockablePane* GetFirstAHWindow();
Возвращаемое значение
Первое окно автоматического скрытия в приложении или значение NULL, если его не существует.
Замечания
CMFCAutoHideBar::GetVisibleCount
Получает количество видимых кнопок автоматического скрытия.
int GetVisibleCount();
Возвращаемое значение
Возвращает количество видимых кнопок автоматического скрытия.
Замечания
CMFCAutoHideBar::m_nShowAHWndDelay
Задержка времени между моментом, когда пользователь помещает курсор мыши на класс CMFCAutoHideButton и момент, когда платформа отображает связанное окно.
int CMFCAutoHideBar::m_nShowAHWndDelay = 400;
Замечания
Когда пользователь помещает курсор мыши на объект CMFCAutoHideButton
, существует небольшая задержка, прежде чем платформа отображает связанное окно. Этот параметр определяет длину задержки в миллисекундах.
CMFCAutoHideBar::OnShowControlBarMenu
virtual BOOL OnShowControlBarMenu(CPoint);
Параметры
[in] CPoint
Возвращаемое значение
Замечания
CMFCAutoHideBar::RemoveAutoHideWindow
Удаляет и уничтожает окно автоматического скрытия.
BOOL RemoveAutoHideWindow(CDockablePane* pAutoHideWnd);
Параметры
CDockablePane* pAutoHideWnd Автоматическое скрытие окна для удаления.
Возвращаемое значение
Значение TRUE, если успешно; в противном случае — FALSE.
Замечания
CMFCAutoHideBar::SetActiveInGroup
Помечает строку автоматического скрытия как активную.
virtual void SetActiveInGroup(BOOL bActive);
Параметры
[in] BOOL bActive TRUE для задания активного значения; в противном случае — ЗНАЧЕНИЕ FALSE.
Замечания
См. раздел CPane::SetActiveInGroup.
CMFCAutoHideBar::SetRecentVisibleState
void SetRecentVisibleState(BOOL bState);
Параметры
bState
[in] Состояние для задания.
Замечания
CMFCAutoHideBar::ShowAutoHideWindow
Показывает окно автоматического скрытия.
BOOL ShowAutoHideWindow(
CDockablePane* pAutoHideWnd,
BOOL bShow,
BOOL bDelay);
Параметры
pAutoHideWnd
[in] Окно для отображения.
bShow
[in] Значение TRUE для отображения окна.
bDelay
[in] Этот параметр игнорируется.
Возвращаемое значение
Значение TRUE, если успешно; в противном случае — FALSE.
Замечания
CMFCAutoHideBar::StretchPane
Изменение размеров строки автоматического скрытия в свернутом состоянии в соответствии с размерами объекта CMFCAutoHideButton
.
virtual CSize StretchPane(
int nLength,
BOOL bVert);
Параметры
nLength
[in] Значение не используется в базовой реализации. В производных реализациях это значение используется для указания длины панели, размер которой был изменен.
bVert
[in] Значение не используется в базовой реализации. В производных реализациях используйте значение TRUE для обработки ситуации, когда сворачивается по вертикали панель автоматического скрытия, и значение FALSE для случая, когда панель автоматического скрытия свернута по горизонтали.
Возвращаемое значение
Размер, полученный в результате изменения размера панели.
Замечания
Производные классы могут переопределять этот метод для настройки поведения.
CMFCAutoHideBar::UnSetAutoHideMode
Отключает режим автоматического скрытия для группы строк автоматического скрытия.
void UnSetAutoHideMode(CDockablePane* pFirstBarInGroup)
Параметры
[in] pFirstBarInGroup A указатель на первую панель автоматического скрытия в группе.
Замечания
CMFCAutoHideBar::UpdateVisibleState
Вызывается платформой при необходимости перерисовать строку автоматического скрытия.
void UpdateVisibleState();
Замечания
См. также
Диаграмма иерархии
Классы
Класс CPane
Класс CAutoHideDockSite
Класс CMFCAutoHideButton