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


Класс CPane

Класс CPane является улучшением класса CControlBar. При обновлении существующего проекта MFC замените все вхождения CControlBar CPane.

Синтаксис

class CPane : public CBasePane

Участники

Открытые конструкторы

Имя Описание
CPane::~CPane Деструктор.

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

Имя Описание
CPane::AdjustSizeImmediate Немедленно пересчитывает макет области.
CPane::AllocElements Выделяет хранилище для внутреннего использования.
CPane::AllowShowOnPaneMenu Указывает, указана ли область в созданном во время выполнения списке панелей для приложения.
CPane::CalcAvailableSize Вычисляет разницу в размере между указанным прямоугольником и текущим прямоугольником окна.
CPane::CalcInsideRect Вычисляет внутренний прямоугольник панели, учитывая границы и захваты.
CPane::CalcRecentDockedRect Вычисляет недавно закрепленный прямоугольник.
CPane::CalcSize Вычисляет размер области.
CPane::CanBeDocked Определяет, можно ли закрепить панель на указанной базовой панели.
CPane::CanBeTabbedDocument Определяет, можно ли преобразовать панель в документ с вкладками.
CPane::ConvertToTabbedDocument Преобразует панель с закреплением в документ с вкладками.
CPane::CopyState Копирует состояние области. (Переопределения CBasePane::CopyState.)
CPane::Create Создает панель управления и присоединяет ее к объекту CPane .
CPane::CreateDefaultMiniframe Создает окно мини-кадра для с плавающей панели.
CPane::CreateEx Создает панель управления и присоединяет ее к объекту CPane .
CPane::CreateObject Используется платформой для создания динамического экземпляра этого типа класса.
CPane::D ockByMouse Закрепление области с помощью метода закрепления мыши.
CPane::D ockPane Закрепление плавающей панели на базовой панели.
CPane::D ockPaneStandard Закрепление области с помощью закрепления структуры (стандартного).
CPane::D ockToFrameWindow Закрепление панели с закреплением к кадру. (Переопределяет CBasePane::DockToFrameWindow.)
CPane::D oesAllowSiblingBars Указывает, можно ли закрепить другую панель в той же строке, где закреплена текущая панель.
CPane::FloatPane С плавающей областью.
CPane::GetAvailableExpandSize Возвращает сумму в пикселях, которую может развернуть панель.
CPane::GetAvailableStretchSize Возвращает сумму в пикселях, которую может уменьшить область.
CPane::GetBorders Возвращает ширину границ области.
CPane::GetClientHotSpot Возвращает горячую точку области.
CPane::GetDockSiteRow Возвращает строку док-станции, в которой закреплена панель.
CPane::GetExclusiveRowMode Определяет, находится ли панель в монопольном режиме строк.
CPane::GetHotSpot Возвращает горячую точку, хранящуюся в базовом CMFCDragFrameImpl объекте.
CPane::GetMinSize Извлекает минимальный допустимый размер области.
CPane::GetPaneName Извлекает заголовок области.
CPane::GetResizeStep Используется внутри системы.
CPane::GetThisClass Используется платформой для получения указателя на объект CRuntimeClass , связанный с этим типом класса.
CPane::GetVirtualRect Извлекает виртуальный прямоугольник области.
CPane::IsChangeState При перемещении области этот метод анализирует положение панели относительно других панелей, закрепления строк и мини-кадров и возвращает соответствующее значение AFX_CS_STATUS.
CPane::IsDragMode Указывает, перетаскивается ли область.
CPane::IsInFloatingMultiPaneFrameWnd Указывает, находится ли панель в окне кадров с несколькими панелями. (Переопределяет CBasePane::IsInFloatingMultiPaneFrameWnd.)
CPane::IsLeftOf Определяет, слева ли панель (или выше) указанного прямоугольника.
CPane::IsResizable Определяет, можно ли изменить размер области. (Переопределения CBasePane::IsResizable.)
CPane::IsTabbed Определяет, была ли панель вставлена в элемент управления вкладкой окна табуляции. (Переопределения CBasePane::IsTabbed.)
CPane::LoadState Загружает состояние области из реестра. (Переопределения CBasePane::LoadState.)
CPane::MoveByAlignment Перемещает область и виртуальный прямоугольник по указанному количеству.
CPane::MovePane Перемещает область в указанный прямоугольник.
CPane::OnAfterChangeParent Вызывается платформой при изменении родительского элемента панели.
CPane::OnBeforeChangeParent Вызывается платформой, когда родитель панели будет меняться.
CPane::OnPressCloseButton Вызывается платформой, когда пользователь нажимает кнопку "Закрыть" в заголовке области.
CPane::OnProcessDblClk Используется внутри системы.
CPane::OnShowControlBarMenu Вызывается платформой непосредственно перед отображением меню особой панели.
CPane::OnShowControlBarMenu Вызывается платформой непосредственно перед отображением меню особой панели.
CPane::PrepareToDock Используется внутри системы.
CPane::RecalcLayout Пересчитывает сведения о макете области. (Переопределения CBasePane::RecalcLayout.)
CPane::SaveState Сохраняет состояние области в реестре. (Переопределения CBasePane::SaveState.)
CPane::SetActiveInGroup Помечает панель как активную.
CPane::SetBorders Задает значения границы области.
CPane::SetClientHotSpot Задает горячую точку области.
CPane::SetDockState Восстанавливает сведения о состоянии док-станции для области.
CPane::SetExclusiveRowMode Включает или отключает монопольный режим строки.
CPane::SetMiniFrameRTC Задает сведения о классе среды выполнения для окна мини-кадра по умолчанию.
CPane::SetMinSize Задает минимальный допустимый размер области.
CPane::SetVirtualRect Задает виртуальный прямоугольник области.
CPane::StretchPaneDeferWndPos Растягивает область по вертикали или горизонтально на основе стиля закрепления.
CPane::ToggleAutoHide Переключение режима автоматического скрытия.
CPane::UndockPane Удаляет область с сайта док-станции, ползунка по умолчанию или окна мини-кадра, где он в настоящее время закреплен. (Переопределения CBasePane::UndockPane.)
CPane::UpdateVirtualRect Обновляет виртуальный прямоугольник.

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

Имя Описание
CPane::OnAfterDock Вызывается платформой при закреплении области.
CPane::OnAfterFloat Вызывается платформой при плавающей области.
CPane::OnBeforeDock Вызывается платформой, когда панель будет закреплена.
CPane::OnBeforeFloat Вызывается платформой, когда область будет плавать.

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

Имя Описание
CPane::m_bHandleMinSize Обеспечивает согласованную обработку минимального размера для панелей.
CPane::m_recentDockInfo Содержит последние сведения о закреплении.

Замечания

Как правило, CPane объекты не создаются напрямую. Если требуется панель с функциями закрепления, наследуйте объект из CDockablePane. Если требуется функция панели инструментов, наследуйте объект из CMFCToolBar.

При наследовав классе CPane, его можно закрепить в CDockSite , и его можно с плавать в CPaneFrameWnd.

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

CObject

CCmdTarget

CWnd

CBasePane

CPane

Требования

Заголовок: afxPane.h

CPane::AdjustSizeImmediate

Немедленно пересчитывает макет области.

virtual void AdjustSizeImmediate(BOOL bRecalcLayout = TRUE);

Параметры

bRecalcLayout
[in] ЗНАЧЕНИЕ TRUE для автоматического пересчета макета панели; в противном случае — ЗНАЧЕНИЕ FALSE.

Замечания

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

CPane::AllocElements

Выделяет хранилище для внутреннего использования.

BOOL AllocElements(
    int nElements,
    int cbElement);

Параметры

nElements
[in] Количество элементов, для которых нужно выделить хранилище.

cbElement
[in] Размер элемента в байтах.

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

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

CPane::AllowShowOnPaneMenu

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

virtual BOOL AllowShowOnPaneMenu() const;

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

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

Замечания

Созданное приложение AppWizard содержит параметр меню, в котором перечислены области, содержащиеся в ней. Этот метод определяет, отображается ли область в списке.

CPane::CalcAvailableSize

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

virtual CSize CalcAvailableSize(CRect rectRequired);

Параметры

rectRequired
[in] Обязательный прямоугольник.

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

Разница в ширине и высоте между прямоугольником прямоугольника .

CPane::CalcInsideRect

Вычисляет внутренний прямоугольник панели, включая границы и захваты.

void CalcInsideRect(
    CRect& rect,
    BOOL bHorz) const;

Параметры

rect
[out] Содержит размер и смещение клиентской области панели.

bHorz
[in] ЗНАЧЕНИЕ TRUE, если область ориентирована по горизонтали; в противном случае — ЗНАЧЕНИЕ FALSE.

Замечания

Этот метод вызывается платформой при перерасчете макета для области. Параметр rect заполняется размером и смещением клиентской области панели. К ним относятся границы и захваты.

CPane::CalcRecentDockedRect

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

void CalcRecentDockedRect();

Замечания

Этот метод обновляет CPane::m_recentDockInfo.

CPane::CalcSize

Вычисляет размер области.

virtual CSize CalcSize(BOOL bVertDock);

Параметры

bVertDock
[in] Значение TRUE, если область закреплена по вертикали, значение FALSE в противном случае.

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

Реализация этого метода по умолчанию возвращает размер (0, 0).

Замечания

Производные классы должны переопределить этот метод.

CPane::CanBeDocked

Определяет, можно ли закрепить панель на указанной базовой панели.

virtual BOOL CanBeDocked(CBasePane* pDockBar) const;

Параметры

pDockBar
[in] Указывает область, в которой должна быть закреплена эта область.

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

ЗНАЧЕНИЕ TRUE, если эта область может быть закреплена на указанной панели док-станции; в противном случае — ЗНАЧЕНИЕ FALSE.

Замечания

Этот метод обычно вызывается платформой, чтобы определить, можно ли закрепить панель на указанной панели закрепления. Чтобы определить, можно ли закрепить панель, метод оценивает выравнивание док-станции в настоящее время.

Вы можете включить закрепление на различных сторонах окна кадра, вызвав CBasePane::EnableDocking.

CPane::CanBeTabbedDocument

Определяет, можно ли преобразовать панель в документ с вкладками.

virtual BOOL CanBeTabbedDocument() const;

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

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

Замечания

Переопределите этот метод в производном классе и верните значение FALSE, если вы хотите предотвратить преобразование области в документ с вкладками. Документ с вкладками не будет указан в меню "Положение окна".

CPane::ConvertToTabbedDocument

Преобразует панель с закреплением в документ с вкладками.

virtual void ConvertToTabbedDocument(BOOL bActiveTabOnly = TRUE);

Параметры

bActiveTabOnly
[in] Не используется в CPane::ConvertToTabbedDocument.

Замечания

Можно преобразовать только панели с закреплением в документы с вкладками. Дополнительные сведения см. в разделе CDockablePane::ConvertToTabbedDocument.

CPane::CopyState

Копирует состояние области.

virtual void CopyState(CPane* pOrgBar);

Параметры

pOrgBar
[in] Указатель на область.

Замечания

Этот метод копирует состояние pOrgBar в текущую область.

CPane::Create

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

virtual BOOL Create(
    LPCTSTR lpszClassName,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID,
    DWORD dwControlBarStyle = AFX_DEFAULT_PANE_STYLE,
    CCreateContext* pContext = NULL);

Параметры

lpszClassName
[in] Указывает имя класса Windows.

dwStyle
[in] Задает атрибуты стиля окна. Дополнительные сведения см. в разделе "Стили окон".

rect
[in] Указывает начальный размер и позицию окна pParentWnd в координатах клиента.

pParentWnd
[in, out] Указывает родительское окно этой области.

nID
[in] Указывает идентификатор области.

dwControlBarStyle
[in] Задает стиль области. Дополнительные сведения см. в разделе CBasePane::CreateEx.

pContext
[in, out] Указывает контекст создания области.

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

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

Замечания

Этот метод создает панель Windows и присоединяет его к объекту CPane .

Если вы еще не инициализировали CPane::m_recentDockInfo перед вызовом Create, прямоугольник параметра будет использоваться в качестве прямоугольника при плавающем или закреплении области.

CPane::CreateDefaultMiniframe

Создает окно мини-кадра для с плавающей панели.

virtual CPaneFrameWnd* CreateDefaultMiniframe(CRect rectInitial);

Параметры

rectInitial
[in] Задает начальный размер и позицию в координатах экрана для создания окна мини-кадра.

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

Созданное окно мини-кадра.

Замечания

Этот метод вызывается платформой для создания окна мини-кадра при плавающей области. Окно мини-кадра может быть типа CPaneFrameWnd или типа CMultiPaneFrameWnd. Окно с несколькими мини-кадрами создается, если панель имеет стиль AFX_CBRS_FLOAT_MULTI.

Сведения о классе среды выполнения для окна мини-кадра хранятся в элементе CPane::m_pMiniFrameRTC . Вы можете использовать производный класс для задания этого элемента, если вы решили создать настраиваемые окна мини-кадра.

CPane::CreateEx

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

virtual BOOL CreateEx(
    DWORD dwStyleEx,
    LPCTSTR lpszClassName,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID,
    DWORD dwControlBarStyle = AFX_DEFAULT_PANE_STYLE,
    CCreateContext* pContext = NULL);

Параметры

dwStyleEx
[in] Задает атрибуты расширенного стиля окна. Дополнительные сведения см. в разделе "Расширенные стили окон".

lpszClassName
[in] Указывает имя класса Windows.

dwStyle
[in] Задает атрибуты стиля окна. Дополнительные сведения см. в разделе "Стили окон".

rect
[in] Указывает начальный размер и позицию окна pParentWnd в координатах клиента.

pParentWnd
[in, out] Указывает родительское окно этой области.

nID
[in] Указывает идентификатор области.

dwControlBarStyle
[in] Задает стиль области. Дополнительные сведения см. в разделе CBasePane::CreateEx.

pContext
[in, out] Указывает контекст создания области.

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

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

Замечания

Этот метод создает панель Windows и присоединяет его к объекту CPane .

Если вы еще не инициализировали CPane::m_recentDockInfo перед вызовом CreateEx, прямоугольник параметра будет использоваться в качестве прямоугольника при плавающем или закреплении области.

CPane::D ockByMouse

Закрепление области с помощью мыши.

virtual BOOL DockByMouse(CBasePane* pDockBar);

Параметры

pDockBar
[in] Указывает базовую панель, к которой необходимо закрепить эту область.

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

ЗНАЧЕНИЕ TRUE, если панель была успешно закреплена; в противном случае — ЗНАЧЕНИЕ FALSE.

CPane::D ockPane

Закрепление плавающей панели на базовой панели.

virtual BOOL DockPane(
    CBasePane* pDockBar,
    LPCRECT lpRect,
    AFX_DOCK_METHOD dockMethod);

Параметры

pDockBar
[in, out] Указывает базовую панель для закрепления этой области.

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

dockMethod
[in] Указывает используемый метод закрепления. Доступные варианты:

Вариант Описание
DM_UNKNOWN Платформа использует этот параметр, если метод закрепления неизвестен. Панель не сохраняет последнюю позицию с плавающей запятой. Этот параметр также можно использовать для программной прикрепления области, если не нужно хранить последнюю плавающую позицию.
DM_MOUSE Используется внутри системы.
DM_DBL_CLICK Этот параметр используется при двойном щелчке захвата. Панель переместится в самое последнее положение прикрепления. Если панель открепится при двойном щелчке, область переместится в самую последнюю позицию с плавающей запятой.
DM_SHOW Этот параметр можно использовать для программной прикрепления области. Панель сохраняет последнюю позицию с плавающей запятой.
DM_RECT Панель закреплена в регионе, указанном в lpRect.
DM_STANDARD При использовании этого параметра платформа рисует панель как рамку структуры при перемещении.

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

ЗНАЧЕНИЕ TRUE, если панель была успешно закреплена; в противном случае — ЗНАЧЕНИЕ FALSE.

Замечания

Этот метод закрепляет панель на базовой панели, указанной параметром pDockBar . Сначала необходимо включить закрепление, вызвав CBasePane::EnableDocking.

CPane::D ockPaneStandard

Закрепление области с помощью закрепления структуры (стандартного).

virtual CPane* DockPaneStandard(BOOL& bWasDocked);

Параметры

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

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

Этот метод всегда возвращает this указатель.

Замечания

Этот метод используется только для панелей, производных от класса CDockablePane. Дополнительные сведения см. в разделе CDockablePane::D ockPaneStandard.

CPane::D ockToFrameWindow

Закрепление панели с закреплением к кадру.

virtual BOOL DockToFrameWindow(
    DWORD dwAlignment,
    LPCRECT lpRect = NULL,
    DWORD dwDockFlags = DT_DOCK_LAST,
    CBasePane* pRelativeBar = NULL,
    int nRelativeIndex = -1,
    BOOL bOuterEdge = FALSE);

Параметры

dwAlignment
[in] Сторона родительского кадра, к которой требуется закрепить область.

lpRect
[in] Указанный размер.

dwDockFlags
[in] Игнорировать.

pRelativeBar
[in] Игнорировать.

nRelativeIndex
[in] Игнорировать.

bOuterEdge
[in] Если значение TRUE и есть другие панели, которые находятся на стороне, указанной dwAlignment, область закреплена за пределами других областей ближе к краю родительского кадра. Если значение FALSE, область закреплена ближе к центру клиентской области.

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

FALSE, если разделитель области ( класс CPaneDivider) не может быть создан; в противном случае — ЗНАЧЕНИЕ TRUE.

Замечания

CPane::D oesAllowSiblingBars

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

virtual BOOL DoesAllowSiblingBars() const;

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

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

Замечания

Это поведение можно включить или отключить, вызвав CPane::SetExclusiveRowMode.

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

CPane::FloatPane

С плавающей областью.

virtual BOOL FloatPane(
    CRect rectFloat,
    AFX_DOCK_METHOD dockMethod = DM_UNKNOWN,
    bool bShow = true);

Параметры

rectFloat
[in] Указывает расположение в координатах экрана, чтобы разместить область при плавающей запятой.

dockMethod
[in] Указывает метод закрепления, используемый при плавающей области. Список возможных значений см. в разделе CPane::D ockPane.

bShow
[in] ЗНАЧЕНИЕ TRUE, чтобы отобразить область при плавающей запятой; в противном случае — ЗНАЧЕНИЕ FALSE.

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

Значение TRUE, если область успешно плавала или не может быть с плавающей областью, так как CBasePane::CanFloat возвращает значение FALSE; в противном случае — ЗНАЧЕНИЕ FALSE.

Замечания

Вызовите этот метод, чтобы с плавать панелью в позиции, указанной параметром rectFloat . Этот метод автоматически создает родительское окно мини-кадра для области.

CPane::GetAvailableExpandSize

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

virtual int GetAvailableExpandSize() const;

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

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

Замечания

CPane::GetAvailableStretchSize

Возвращает сумму в пикселях, которую может уменьшить область.

virtual int GetAvailableStretchSize() const;

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

Сумма в пикселях, которую может уменьшить область. Если панель закреплена по горизонтали, эта сумма является доступной шириной; в противном случае это доступная высота.

Замечания

Доступный размер растяжения вычисляется путем вычитания минимально допустимого размера области ( CPane::GetMinSize) из текущего размера ( CWnd::GetWindowRect).

CPane::GetBorders

Возвращает ширину границ области.

CRect GetBorders() const;

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

Объект CRect, содержащий текущую ширину (в пикселях) каждой стороны панели. Например, значение left элемента объекта — ширина левой CRect границы.

Замечания

Чтобы задать размер границ, вызовите CPane::SetBorders.

CPane::GetClientHotSpot

Возвращает горячую точку области.

CPoint GetClientHotSpot() const;

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

Замечания

Горячая точка — это точка на панели, которую пользователь выбирает и удерживает для перемещения области. Горячая точка используется для плавной анимации при перемещении панели из закрепленной позиции.

CPane::GetDockSiteRow

Возвращает строку док-станции ( класс CDockingPanesRow), в которой закреплена панель.

CDockingPanesRow* GetDockSiteRow() const;

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

* CDockingPanesRowуказывает на строку док-станции, в которой закреплена панель, или ЗНАЧЕНИЕ NULL, если панель не закреплена.

CPane::GetExclusiveRowMode

Определяет, находится ли панель в монопольном режиме строк.

virtual BOOL GetExclusiveRowMode() const;

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

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

Замечания

Дополнительные сведения об эксклюзивном режиме строк см. в разделе CPane::SetExclusiveRowMode.

CPane::GetHotSpot

Возвращает горячую точку, хранящуюся в базовом CMFCDragFrameImpl объекте.

CPoint GetHotSpot() const;

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

Замечания

Класс CPane содержит CMFCDragFrameImpl объект, m_dragFrameImplкоторый отвечает за рисование прямоугольника, который отображается при перемещении области в стандартном режиме закрепления. Горячая точка используется для рисования прямоугольника относительно текущей позиции мыши, когда пользователь перемещает область.

CPane::GetMinSize

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

virtual void GetMinSize(CSize& size) const;

Параметры

size
[out] CSize Объект, заполненный минимальным допустимым размером.

Замечания

CPane::GetPaneName

Извлекает заголовок области.

virtual void GetPaneName(CString& strName) const;

Параметры

strName
[out] Объект CString , заполненный именем заголовка.

Замечания

Заголовок панели отображается в области заголовка, когда панель закреплена или плавает. Если панель входит в группу табуляции, название отображается в области вкладок. Если панель находится в режиме автоматического скрытия, в ней CMFCAutoHideButtonотображается заголовок.

CPane::GetVirtualRect

Извлекает виртуальный прямоугольник области.

void GetVirtualRect(CRect& rectVirtual) const;

Параметры

rectVirtual
[out] Объект CRect , заполненный виртуальным прямоугольником.

Замечания

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

Не вызывайте методы, связанные с виртуальными прямоугольниками, если только вы не перемещаете панели программным способом.

CPane::IsChangeState

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

virtual AFX_CS_STATUS IsChangeState(
    int nOffset,
    CBasePane** ppTargetBar) const;

Параметры

nOffset
[in] Указывает конфиденциальность прикрепления. Например, панель, перемещаемая в пикселях nOffset из строки док-станции, будет закреплена.

ppTargetBar
[in] При возврате метода ppTargetBar содержит указатель на объект, к которому должна быть закреплена текущая панель, или значение NULL, если не должно происходить закрепление.

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

Одно из следующих AFX_CS_STATUS значений:

значение Описание
CS_NOTHING Область находится не рядом с сайтом док-станции. Платформа не закреплена на панели.
CS_DOCK_IMMEDIATELY Панель находится на сайте док-станции, а стиль DT_IMMEDIATE включен. Платформа закрепивает панель немедленно.
CS_DELAY_DOCK Область находится на сайте док-станции, который является либо другой областью док-станции, либо краем основного кадра. Платформа закрепляет панель при выпуске перемещения пользователем.
CS_DELAY_DOCK_TO_TAB Панель находится на сайте док-станции, что приводит к закреплению панели в окне с вкладками. Это происходит, когда область находится в заголовке другой области док-станции или на вкладке. Платформа закрепляет панель при выпуске перемещения пользователем.

CPane::IsDragMode

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

virtual BOOL IsDragMode() const;

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

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

Замечания

CPane::IsInFloatingMultiPaneFrameWnd

Указывает, находится ли область в окне кадров с несколькими областями ( класс CMultiPaneFrameWnd).

virtual BOOL IsInFloatingMultiPaneFrameWnd() const;

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

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

Замечания

В окне рамки с несколькими панелями могут плавать только панели, доступные для закрепления. CPane::IsInFloatingMultiPaneFrameWnd Поэтому всегда возвращает значение FALSE.

CPane::IsLeftOf

Определяет, слева ли панель (или выше) указанного прямоугольника.

bool IsLeftOf(
    CRect rect,
    bool bWindowRect = true) const;

Параметры

rect
[in] Объект, используемый CRect для сравнения.

bWindowRect
[in] Если значение TRUE, предполагается, что прямоугольник содержит координаты экрана; если значение FALSE, предполагается, что он содержит координаты клиента.

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

Замечания

Если панель закреплена по горизонтали, этот метод проверяет, остается ли его расположение прямоугольниками. В противном случае этот метод проверяет, находится ли расположение выше.

CPane::IsResizable

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

virtual BOOL IsResizable() const;

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

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

Замечания

Базовые CPane объекты не изменяются.

Диспетчер закреплений использует флаг для изменения размера для определения макета области. Неизменяемые области всегда находятся на внешних краях родительского кадра.

Неизменяемые области не могут находиться в контейнерах с закреплением.

CPane::IsTabbed

Определяет, была ли панель вставлена в элемент управления вкладкой окна табуляции.

virtual BOOL IsTabbed() const;

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

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

Замечания

Состояние табуляции обрабатывается отдельно от состояния с плавающей закрепления, закрепленной и автоматической скрытия.

CPane::LoadState

Загружает состояние области из реестра.

virtual BOOL LoadState(
    LPCTSTR lpszProfileName = NULL,
    int nIndex = -1,
    UINT uiID = (UINT) -1);

Параметры

lpszProfileName
[in] Имя профиля.

nIndex
[in] Индекс профиля.

uiID
[in] Идентификатор области.

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

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

Замечания

Платформа вызывает этот метод для загрузки состояния области из реестра. Переопределите его в производном классе, чтобы загрузить дополнительные сведения, сохраненные CPane::SaveState.

При переопределении этого метода также вызывается базовый метод и возвращает значение FALSE, если базовый метод возвращает ЗНАЧЕНИЕ FALSE.

CPane::m_bHandleMinSize

Обеспечивает согласованную обработку минимальных размеров панели.

AFX_IMPORT_DATA static BOOL m_bHandleMinSize;

Замечания

Если одна или несколько областей закрепления в приложении переопределяются GetMinSizeили если вызовы SetMinSizeприложения, может потребоваться задать для этого статического члена значение TRUE, чтобы платформа постоянно обрабатывала размеры панелей.

Если для этого значения задано значение TRUE, все панели, размер которых должен быть сокращен ниже минимального размера, обрезаются, а не растянуты. Так как платформа использует области окон для целей изменения размера области, не изменяйте размер области окна для док-панелей, если это значение имеет значение TRUE.

CPane::m_recentDockInfo

Содержит последние сведения о закреплении.

CRecentDockSiteInfo m_recentDockInfo;

Замечания

Платформа хранит последние сведения о состоянии док-станции для области в этом элементе.

CPane::MoveByAlignment

Перемещает область и виртуальный прямоугольник по указанному количеству.

BOOL MoveByAlignment(
    DWORD dwAlignment,
    int nOffset);

Параметры

dwAlignment
[in] Указывает выравнивание области.

nOffset
[in] Объем в пикселях, по которому перемещается панель и виртуальный прямоугольник.

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

Замечания

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

значение Описание
CBRS_ALIGN_TOP Позволяет закрепить панель в верхней части клиентской области окна кадра.
CBRS_ALIGN_BOTTOM Позволяет закрепить панель в нижней части клиентской области окна кадра.
CBRS_ALIGN_LEFT Позволяет закрепить панель слева от клиентской области окна фрейма.
CBRS_ALIGN_RIGHT Позволяет закрепить панель справа от клиентской области окна фрейма.
CBRS_ALIGN_ANY Позволяет закреплению панели к любой стороне клиентской области окна кадра.

Если dwAlignment содержит флаг CBRS_ALIGN_LEFT или CBRS_ALIGN_RIGHT, область и виртуальный прямоугольник перемещаются по горизонтали; в противном случае, если dwAlignment содержит флаг CBRS_ALIGN_TOP или CBRS_ALIGN_BOTTOM, область и виртуальный прямоугольник перемещаются по вертикали.

CPane::MovePane

Перемещает область в указанный прямоугольник.

virtual CSize MovePane(
    CRect rectNew,
    BOOL bForceMove,
    HDWP& hdwp);

Параметры

rectNew
[in] Задает новый прямоугольник для области.

bForceMove
[in] Если значение TRUE, этот метод игнорирует минимальный допустимый размер области ( CPane::GetMinSize); в противном случае область корректируется при необходимости, чтобы убедиться, что это по крайней мере минимальный допустимый размер.

hdwp
[in] Не используется.

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

Объект CSize , содержащий различия ширины и высоты между новыми и старыми прямоугольниками (старый прямоугольник - rectNew).

Замечания

Этот метод используется только для закрепления панелей.

CPane::OnAfterChangeParent

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

virtual void OnAfterChangeParent(CWnd* pWndOldParent);

Параметры

pWndOldParent
[in, out] Предыдущее родительское окно панели.

Замечания

Этот метод вызывается платформой, когда родительский элемент панели изменился из-за закрепления или операции с плавающей запятой.

CPane::OnAfterDock

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

virtual void OnAfterDock(
    CBasePane* pBar,
    LPCRECT lpRect,
    AFX_DOCK_METHOD dockMethod);

Параметры

pBar
[in] Этот параметр не используется.

lpRect
[in] Этот параметр не используется.

dockMethod
[in] Этот параметр не используется.

CPane::OnAfterFloat

Вызывается платформой после плавающей области.

virtual void OnAfterFloat();

Замечания

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

CPane::OnBeforeChangeParent

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

virtual void OnBeforeChangeParent(
    CWnd* pWndNewParent,
    BOOL bDelay = FALSE);

Параметры

pWndNewParent
[in, out] Указывает новое родительское окно.

bDelay
[in] ЗНАЧЕНИЕ TRUE, чтобы отложить настройку глобального макета прикрепления; в противном случае — ЗНАЧЕНИЕ FALSE.

Замечания

Этот метод вызывается платформой, когда родитель панели будет меняться, так как область закреплена или плавает.

По умолчанию панель отменяется с помощью панели закрепления путем вызова CDockSite::RemovePane.

CPane::OnBeforeDock

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

virtual BOOL OnBeforeDock(
    CBasePane** ppDockBar,
    LPCRECT lpRect,
    AFX_DOCK_METHOD dockMethod);

Параметры

ppDockBar
[in, out] Указывает область, к которому подключена эта область.

lpRect
[in] Задает прямоугольник для закрепления.

dockMethod
[in] Указывает метод закрепления.

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

Значение TRUE, если панель может быть закреплена. Если функция возвращает значение FALSE, операция закрепления будет прервана.

Замечания

Этот метод вызывается платформой, когда область будет закреплена. Этот метод можно переопределить в производном классе, если вы хотите выполнить любую обработку перед закреплением области.

CPane::OnBeforeFloat

Вызывается платформой, когда область будет плавать.

virtual BOOL OnBeforeFloat(
    CRect& rectFloat,
    AFX_DOCK_METHOD dockMethod);

Параметры

rectFloat
[in] Указывает положение и размер области, когда она находится в плавающем состоянии.

dockMethod
[in] Задает метод закрепления области.

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

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

Замечания

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

CPane::OnPressCloseButton

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

virtual void OnPressCloseButton();

Замечания

Этот метод вызывается платформой, когда пользователь нажимает кнопку "Закрыть " в заголовке панели. Чтобы получать уведомления о событии Close , можно переопределить этот метод в производном классе.

CPane::OnShowControlBarMenu

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

virtual BOOL OnShowControlBarMenu(CPoint point);

Параметры

point
[in] Указывает расположение меню.

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

ЗНАЧЕНИЕ TRUE, если меню можно отобразить; в противном случае — ЗНАЧЕНИЕ FALSE.

Замечания

Меню содержит несколько элементов, которые позволяют указать поведение области, а именно: Floating, Docking, AutoHide и Hide. Это меню можно включить для всех областей, вызвав CDockingManager::EnableDockSiteMenu.

CPane::RecalcLayout

Пересчитывает сведения о макете области.

virtual void RecalcLayout();

Замечания

Если панель закреплена, этот метод обновляет виртуальный прямоугольник для панели, задав его размер текущему размеру панели.

Если область плавает, этот метод уведомляет родительский мини-кадр, чтобы настроить размер панели на размер мини-кадра. Платформа гарантирует, что мини-кадр по крайней мере минимальный допустимый размер панели ( CPane::GetMinSize) и изменяет размер мини-кадра при необходимости.

CPane::SaveState

Сохраняет состояние области в реестре.

virtual BOOL SaveState(
    LPCTSTR lpszProfileName = NULL,
    int nIndex = -1,
    UINT uiID = (UINT) -1);

Параметры

lpszProfileName
[in] Имя профиля.

nIndex
[in] Индекс профиля.

uiID
[in] Идентификатор области.

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

ЗНАЧЕНИЕ TRUE, если состояние было успешно сохранено; в противном случае — ЗНАЧЕНИЕ FALSE.

Замечания

Платформа вызывает этот метод при сохранении состояния области в реестре. Переопределите SaveState в производном классе для хранения дополнительных сведений.

При переопределении этого метода также вызывается базовый метод и возвращает значение FALSE, если базовый метод возвращает ЗНАЧЕНИЕ FALSE.

CPane::SetActiveInGroup

Помечает панель как активную.

virtual void SetActiveInGroup(BOOL bActive);

Параметры

bActive
[in] ЛОГИЧЕСКОЕ ЗНАЧЕНИЕ, указывающее, помечена ли область как активная.

Замечания

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

Внешний вид кнопки автоматического скрытия, связанной с панелью, основан на двух факторах. Если область активна, а static BOOL CMFCAutoHideButton::m_bOverlappingTabs платформа имеет значение TRUE, платформа отображает кнопку автоматического скрытия в виде значка и метки. В неактивной области платформа отображает только значок автоматического скрытия.

Если CMFCAutoHideButton::m_bOverlappingTabs значение false или область не находится в группе, платформа отображает связанную кнопку автоматического скрытия в виде значка и метки.

CPane::SetBorders

Задает значения границы области.

void SetBorders(
    int cxLeft = 0,
    int cyTop = 0,
    int cxRight = 0,
    int cyBottom = 0);

void SetBorders(LPCRECT lpRect);

Параметры

cxLeft
[in] Задает ширину (в пикселях) левой границы панели.

cyTop
[in] Задает ширину (в пикселях) верхней границы панели.

cxRight
[in] Задает ширину в пикселях правой границы панели.

cyBottom
[in] Задает ширину в пикселях нижней границы панели.

lpRect
[in] Объект CRect , содержащий ширину (в пикселях) каждой границы панели.

Замечания

Вызовите эту функцию, чтобы задать размеры границ области.

CPane::SetClientHotSpot

Задает горячую точку области.

void SetClientHotSpot(const CPoint& ptNew);

Параметры

ptNew
[in] Объект CPoint , указывающий новую горячую точку.

Замечания

Горячая точка — это точка на панели, которую пользователь выбирает и удерживает для перемещения области. Горячая точка используется для плавной анимации, когда область перетаскивается из закрепленной позиции.

CPane::SetDockState

Восстанавливает сведения о состоянии док-станции для области.

virtual void SetDockState(CDockingManager* pDockManager);

Параметры

pDockManager
[in] Указатель на диспетчер закрепления для главного окна фрейма.

Замечания

Этот метод вызывается платформой для восстановления последних сведений о состоянии док-станции для области. На панели хранятся последние сведения о состоянии закрепления в CPane::m_recentDockInfo. Дополнительные сведения см. в классе CRecentDockSiteInfo.

Этот метод также можно вызвать, чтобы задать состояние док-станции при загрузке сведений о области из внешнего источника.

CPane::SetExclusiveRowMode

Включает или отключает монопольный режим строки.

virtual void SetExclusiveRowMode(BOOL bExclusive = TRUE);

Параметры

bExclusive
[in] ЗНАЧЕНИЕ TRUE для включения режима монопольной строки; в противном случае — ЗНАЧЕНИЕ FALSE.

Замечания

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

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

CPane::SetMinSize

Задает минимальный допустимый размер области.

void SetMinSize(const CSize& size);

Параметры

size
[in] Объект CSize , содержащий минимальный допустимый размер панели.

Замечания

CPane::SetVirtualRect

Задает виртуальный прямоугольник области.

void SetVirtualRect(
    const CRect& rect,
    BOOL bMapToParent = TRUE);

Параметры

rect
[in] Объект CRect , задающий заданный виртуальный прямоугольник.

bMapToParent
[in] Укажите ЗНАЧЕНИЕ TRUE, если прямоугольник содержит точки относительно родительского окна.

Замечания

Виртуальный прямоугольник сохраняет исходную позицию панели при перемещении. Платформа может использовать виртуальный прямоугольник для восстановления исходной позиции.

Не вызывайте методы, связанные с виртуальными прямоугольниками, если только вы не перемещаете панели программным способом.

CPane::SetMiniFrameRTC

Задает сведения о классе среды выполнения для окна мини-кадра по умолчанию.

void SetMiniFrameRTC(CRuntimeClass* pClass);

Параметры

pClass
[in, out] Указывает сведения о классе среды выполнения для окна мини-кадра.

Замечания

При плавающей области он помещается в окно CPaneFrameWnd (мини-кадр). Можно указать пользовательский CPaneFrameWndпроизводный класс, который будет использоваться при вызове CPane::CreateDefaultMiniframe .

CPane::StretchPaneDeferWndPos

Растягивает область по вертикали или горизонтально на основе стиля закрепления.

virtual int StretchPaneDeferWndPos(
    int nStretchSize,
    HDWP& hdwp);

Параметры

nStretchSize
[in] Объем в пикселях для растяжения области. Используйте отрицательное значение для сжатия области.

hdwp
[in] Не используется.

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

Фактический объем в пикселях, на который была растянута панель.

Замечания

При необходимости этот метод изменяет nStretchSize , чтобы убедиться, что область не превышает пределы размера. Эти ограничения получаются путем вызова CPane::GetAvailableStretchSize и CPane::GetAvailableExpandSize.

CPane::ToggleAutoHide

Переключение режима автоматического скрытия.

virtual void ToggleAutoHide();

Замечания

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

CPane::UndockPane

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

virtual void UndockPane(BOOL bDelay = FALSE);

Параметры

bDelay
[in] Если значение FALSE, платформа вызывает CBasePane::AdjustDockingLayout для настройки макета док-станции.

Замечания

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

CPane::UpdateVirtualRect

Обновляет виртуальный прямоугольник.

void UpdateVirtualRect();
void UpdateVirtualRect(CPoint ptOffset);
void UpdateVirtualRect(CSize sizeNew);

Параметры

ptOffset
[in] CPoint Объект, указывающий смещение, с помощью которого необходимо переместить область.

sizeNew
[in] Объект CSize , указывающий новый размер области.

Замечания

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

Вторая перегрузка сдвигает виртуальный прямоугольник на сумму, указанную ptOffset.

Третья перегрузка задает виртуальный прямоугольник с помощью текущей позиции панели и размера, указанного в sizeNew.

См. также

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