CDockingManager 类

实现用于控制主框架窗口中停靠布局的核心功能。

语法

class CDockingManager : public CObject

成员

公共方法

名称 描述
CDockingManager::AddDockSite 创建停靠窗格并将其添加到控件条列表中。
CDockingManager::AddHiddenMDITabbedBar 将功能条窗格的句柄添加到隐藏的 MDI 选项卡式功能条窗格的列表中。
CDockingManager::AddMiniFrame 将框架添加到微型框列表中。
CDockingManager::AddPane 向停靠管理器注册窗格。
CDockingManager::AdjustDockingLayout 重新计算并调整框架窗口中所有窗格的布局。
CDockingManager::AdjustPaneFrames 导致向所有窗格和 CPaneFrameWnd 窗口发送 WM_NCCALCSIZE 消息。
CDockingManager::AdjustRectToClientArea 调整矩形的对齐方式。
CDockingManager::AlignAutoHidePane 在自动隐藏模式下调整停靠窗格的大小,使其采用停靠站点包围的框架工作区的全宽或全高。
CDockingManager::AutoHidePane 创建自动隐藏工具栏。
CDockingManager::BringBarsToTop 将具有指定对齐方式的停靠功能条置于顶部。
CDockingManager::BuildPanesMenu 将停靠窗格和工具栏的名称添加到菜单中。
CDockingManager::CalcExpectedDockedRect 计算停靠窗口的预期矩形。
CDockingManager::Create 创建停靠管理器。
CDockingManager::DeterminePaneAndStatus 确定包含给定点及其停靠状态的窗格。
CDockingManager::DisableRestoreDockState 启用或禁用从注册表加载停靠布局。
CDockingManager::DockPane 将窗格停靠到另一个窗格或框架窗口。
CDockingManager::DockPaneLeftOf 将窗格停靠到另一个窗格的左侧。
CDockingManager::EnableAutoHidePanes 启用将窗格停靠到主框架,创建停靠窗格,并将其添加到控件条列表中。
CDockingManager::EnableDocking 创建停靠窗格,并启用将窗格停靠到主框架。
CDockingManager::EnableDockSiteMenu 显示一个附加按钮,该按钮可在所有停靠窗格的标题栏上打开弹出菜单。
CDockingManager::EnablePaneContextMenu 当用户单击鼠标右键,并且库正在处理 WM_CONTEXTMENU 消息时,告知库显示具有应用程序工具栏和停靠窗格列表的特殊上下文菜单。
CDockingManager::FindDockSite 检索位于指定位置且具有指定对齐方式的功能条窗格。
CDockingManager::FindDockSiteByPane 返回具有目标功能条窗格 id 的功能条窗格。
CDockingManager::FindPaneByID 按指定的控件 ID 查找窗格。
CDockingManager::FixupVirtualRects 将所有当前工具栏位置提交到虚拟矩形。
CDockingManager::FrameFromPoint 返回包含给定点的框架。
CDockingManager::GetClientAreaBounds 获取包含工作区边界的矩形。
CDockingManager::GetDockingMode 返回当前停靠模式。
CDockingManager::GetDockSiteFrameWnd 获取指向父窗口框架的指针。
CDockingManager::GetEnabledAutoHideAlignment 返回启用的窗格对齐方式。
CDockingManager::GetMiniFrames 获取微型框的列表。
CDockingManager::GetOuterEdgeBounds 获取包含框架外边缘的矩形。
CDockingManager::GetPaneList 返回属于停靠管理器的窗格的列表。 这包括所有浮动窗格。
CDockingManager::GetSmartDockingManager 检索指向智能停靠管理器的指针。
CDockingManager::GetSmartDockingManagerPermanent 检索指向智能停靠管理器的指针。
CDockingManager::GetSmartDockingParams 返回停靠管理器的智能停靠参数。
CDockingManager::GetSmartDockingTheme 一种静态方法,返回用于显示智能停靠标记的主题。
CDockingManager::HideAutoHidePanes 隐藏处于自动隐藏模式的窗格。
CDockingManager::InsertDockSite 创建停靠窗格并将其插入到控件条列表中。
CDockingManager::InsertPane 将控件窗格插入到控件条列表中。
CDockingManager::IsDockSiteMenu 指定是否在所有窗格的标题栏上显示弹出菜单。
CDockingManager::IsInAdjustLayout 确定是否调整了所有窗格的布局。
CDockingManager::IsOLEContainerMode 指定停靠管理器是否处于 OLE 容器模式。
CDockingManager::IsPointNearDockSite 确定指定点是否位于停靠站点附近。
CDockingManager::IsPrintPreviewValid 确定是否设置了打印预览模式。
CDockingManager::LoadState 从注册表加载停靠管理器的状态。
CDockingManager::LockUpdate 锁定给定窗口。
CDockingManager::OnActivateFrame 当框架窗口处于活动状态或停用状态时由框架调用。
CDockingManager::OnClosePopupMenu 当活动的弹出菜单处理 WM_DESTROY 消息时由框架调用。
CDockingManager::OnMoveMiniFrame 由框架调用以移动微型框窗口。
CDockingManager::OnPaneContextMenu 当框架生成包含窗格列表的菜单时由框架调用。
CDockingManager::PaneFromPoint 返回包含给定点的窗格。
CDockingManager::ProcessPaneContextMenuCommand 由框架调用以选中或清除指定命令的复选框,并重新计算显示的窗格的布局。
CDockingManager::RecalcLayout 重新计算控件列表中存在的控件的内部布局。
CDockingManager::ReleaseEmptyPaneContainers 释放空窗格容器。
CDockingManager::RemoveHiddenMDITabbedBar 移除指定的隐藏功能条窗格。
CDockingManager::RemoveMiniFrame 从微型框列表中移除指定的框架。
CDockingManager::RemovePaneFromDockManager 取消注册窗格,并将其从停靠管理器中的列表中移除。
CDockingManager::ReplacePane 用一个窗格替换另一个窗格。
CDockingManager::ResortMiniFramesForZOrder 使用微型框列表中的框架。
CDockingManager::SaveState 将停靠管理器的状态保存到注册表。
CDockingManager::SendMessageToMiniFrames 将指定消息发送到所有微型框。
CDockingManager::Serialize 将停靠管理器写入存档。 (重写 CObject::Serialize。)
CDockingManager::SetAutohideZOrder 设置控件条和指定窗格的大小、宽度和高度。
CDockingManager::SetDockingMode 设置停靠模式。
CDockingManager::SetDockState 设置控件条、微型框和自动隐藏功能条的停靠状态。
CDockingManager::SetPrintPreviewMode 设置打印预览中显示的功能条的打印预览模式。
CDockingManager::SetSmartDockingParams 设置定义智能停靠行为的参数。
CDockingManager::ShowDelayShowMiniFrames 显示或隐藏微型框的窗口。
CDockingManager::ShowPanes 显示或隐藏控件的窗格和自动隐藏功能条。
CDockingManager::StartSDocking 根据智能停靠管理器的对齐方式启动指定窗口的智能停靠。
CDockingManager::StopSDocking 停止智能停靠。

数据成员

名称 描述
CDockingManager::m_bHideDockingBarsInContainerMode 指定停靠管理器是否在 OLE 容器模式下隐藏窗格。
CDockingManager::m_dockModeGlobal 指定全局停靠模式。
CDockingManager::m_nDockSensitivity 指定停靠敏感度。
CDockingManager::m_nTimeOutBeforeDockingBarDock 指定在直接停靠模式下停靠停靠窗格之前的时间(毫秒)。
CDockingManager::m_nTimeOutBeforeToolBarDock 指定在工具栏停靠到主框架窗口之前的时间(毫秒)。

注解

主框架窗口会自动创建并初始化此类。

停靠管理器对象包含停靠布局中所有窗格的列表,以及属于主框架窗口的所有 CPaneFrameWnd 窗口的列表。

CDockingManager 类实现可用于查找窗格或 CPaneFrameWnd 窗口的一些服务。 通常不会直接调用这些服务,因为它们包装在主框架窗口对象中。 有关详细信息,请参阅 CPaneFrameWnd 类

自定义提示

以下提示适用于 CDockingManager 对象:

示例

下面的示例演示如何使用 CDockingManager 类中的各种方法来配置 CDockingManager 对象。 该示例展示如何显示可在所有停靠窗格的标题栏上打开弹出菜单的附加按钮,以及如何设置对象的停靠模式。 此代码片段是 Visual Studio 演示示例的一部分。

CDockingManager *pDockManager = GetDockingManager();
ASSERT_VALID(pDockManager);
pDockManager->AdjustPaneFrames();
pDockManager->EnableDockSiteMenu();
pDockManager->SetDockingMode(DT_STANDARD);

继承层次结构

CObject

CDockingManager

要求

标头:afxDockingManager.h

CDockingManager::AddDockSite

创建停靠窗格并将其添加到控件条列表中。

BOOL AddDockSite(
    const AFX_DOCKSITE_INFO& info,
    CDockSite** ppDockBar = NULL);

参数

info
[in] 对包含停靠窗格对齐方式的信息结构的引用。

ppDockBar
[out] 指向指向新停靠窗格的指针的指针。

返回值

如果已成功创建停靠窗格,则为 TRUE;否则为 FALSE。

CDockingManager::AddHiddenMDITabbedBar

将功能条窗格的句柄添加到隐藏的 MDI 选项卡式功能条窗格的列表中。

void AddHiddenMDITabbedBar(CDockablePane* pBar);

参数

pBar
[in] 指向功能条窗格的指针

CDockingManager::AddPane

向停靠管理器注册窗格。

BOOL AddPane(
    CBasePane* pWnd,
    BOOL bTail = TRUE,
    BOOL bAutoHide = FALSE,
    BOOL bInsertForOuterEdge = FALSE);

参数

pWnd
[in, out] 指定要添加到停靠管理器的窗格。

bTail
[in] 如果为 TRUE,则将窗格添加到停靠管理器窗格列表的末尾;否则为 FALSE。

bAutoHide
[in] 仅供内部使用。 始终使用默认值 FALSE。

bInsertForOuterEdge
[in] 仅供内部使用。 始终使用默认值 FALSE。

返回值

如果已成功向停靠管理器注册窗格,则为 TRUE;否则为 FALSE。

备注

调用此方法可向停靠管理器注册非浮动、不可调整大小的窗格。 如果未注册窗格,则在对停靠管理器进行布局时,窗格将无法正确显示。

CDockingManager::AdjustDockingLayout

重新计算并调整框架窗口中所有窗格的布局。

virtual void AdjustDockingLayout(HDWP hdwp = NULL);

参数

hdwp
[in] 指定延迟窗口位置结构。 有关详细信息,请参阅 Windows 数据类型

备注

CDockingManager::AddMiniFrame

将框架添加到微型框列表中。

virtual BOOL AddMiniFrame(CPaneFrameWnd* pWnd);

参数

pWnd
[in] 指向框架的指针。

返回值

如果框架不在微型框列表中并且已成功添加,则为 TRUE;否则为 FALSE。

CDockingManager::AdjustPaneFrames

导致向所有窗格和 CPaneFrameWnd 窗口发送 WM_NCCALCSIZE 消息。

virtual void AdjustPaneFrames();

备注

CDockingManager::AdjustRectToClientArea

调整矩形的对齐方式。

virtual BOOL AdjustRectToClientArea(
    CRect& rectResult,
    DWORD dwAlignment);

参数

rectResult
[in] 对 CRect 对象的引用

dwAlignment
[in] CRect 对象的对齐方式

返回值

如果调整了 CRect 对象的对齐方式,则为 TRUE;否则为 FALSE。

备注

dwAlignment 参数可以具有下列值之一

  • CBRS_ALIGN_TOP

  • CBRS_ALIGN_BOTTOM

  • CBRS_ALIGN_LEFT

  • CBRS_ALIGN_RIGHT

CDockingManager::AlignAutoHidePane

在自动隐藏模式下调整停靠窗格的大小,使其采用停靠站点包围的框架工作区的全宽或全高。

void AlignAutoHidePane(
    CPaneDivider* pDefaultSlider,
    BOOL bIsVisible = TRUE);

参数

pDefaultSlider
[in] 停靠滑块窗格。

bIsVisible
[in] 如果停靠窗格可见,则为 TRUE;否则为 FALSE。

CDockingManager::AutoHidePane

创建自动隐藏工具栏。

CMFCAutoHideToolBar* AutoHidePane(
    CDockablePane* pBar,
    CMFCAutoHideToolBar* pCurrAutoHideToolBar = NULL);

参数

pBar
[in] 指向功能条窗格的指针。

pCurrAutoHideToolBar
[in] 指向自动隐藏工具栏的指针。

返回值

如果未创建自动隐藏工具栏,则为 NULL;否则为指向新工具栏的指针。

CDockingManager::BringBarsToTop

将具有指定对齐方式的停靠功能条置于顶部。

void BringBarsToTop(
    DWORD dwAlignment = 0,
    BOOL bExcludeDockedBars = TRUE);

参数

dwAlignment
[in] 位于其他窗口顶部的停靠功能条的对齐方式。

bExcludeDockedBars
[in] 如果为 TRUE,则不将停靠功能条置于顶部;否则为 FALSE。

CDockingManager::BuildPanesMenu

将停靠窗格和工具栏的名称添加到菜单中。

void BuildPanesMenu(
    CMenu& menu,
    BOOL bToolbarsOnly);

参数

菜单
[in] 用于将停靠窗格和工具栏的名称添加到其中的菜单。

bToolbarsOnly
[in] 如果为 TRUE,则仅将工具栏名称添加到菜单;否则为 FALSE。

CDockingManager::CalcExpectedDockedRect

计算停靠窗口的预期矩形。

void CalcExpectedDockedRect(
    CWnd* pWnd,
    CPoint ptMouse,
    CRect& rectResult,
    BOOL& bDrawTab,
    CDockablePane** ppTargetBar);

参数

pWnd
[in] 指向要停靠的窗口的指针。

ptMouse
[in] 鼠标位置。

rectResult
[out] 计算的矩形。

bDrawTab
[in] 如果为 TRUE,则绘制选项卡;否则为 FALSE。

ppTargetBar
[out] 指向指向目标窗格的指针的指针。

注解

如果用户将窗口拖到 ptMouse 指定的点,并将其停靠在那里,此方法将计算该窗口占用的矩形

CDockingManager::Create

创建停靠管理器。

BOOL Create(CFrameWnd* pParentWnd);

参数

pParentWnd
[in] 指向停靠管理器的父框架的指针。 此值不得为 NULL。

返回值

始终为 TRUE。

CDockingManager::DeterminePaneAndStatus

确定包含给定点及其停靠状态的窗格。

virtual AFX_CS_STATUS DeterminePaneAndStatus(
    CPoint pt,
    int nSensitivity,
    DWORD dwEnabledAlignment,
    CBasePane** ppTargetBar,
    const CBasePane* pBarToIgnore,
    const CBasePane* pBarToDock);

参数

pt
[in] 要选中的窗格的位置。

nSensitivity
[in] 用于增加每个选中窗格的窗口矩形的值。 如果给定点位于此增加区域中,则窗格满足搜索条件。

dwEnabledAlignment
[in] 停靠窗格的对齐方式。

ppTargetBar
[out] 指向指向目标窗格的指针的指针。

pBarToIgnore
[in] 方法忽略的窗格。

pBarToDock
[in] 停靠的窗格。

返回值

停靠状态。

注解

停靠状态可以是下列值之一:

AFX_CS_STATUS 值 含义
CS_NOTHING 指针不在停靠站点上。 因此,保持窗格浮动。
CS_DOCK_IMMEDIATELY 指针位于直接模式下的停靠站点上(启用了 DT_IMMEDIATE 样式),因此必须立即停靠窗格。
CS_DELAY_DOCK 指针位于一个是另一个停靠窗格或主框架边缘的停靠站点上。
CS_DELAY_DOCK_TO_TAB 指针位于使窗格停靠在选项卡式窗口中的停靠站点上。 当鼠标位于另一个停靠窗格的标题栏上或位于选项卡式窗格的选项卡区域上时,会发生此情况。

CDockingManager::DisableRestoreDockState

启用或禁用从注册表加载停靠布局。

void DisableRestoreDockState(BOOL bDisable = TRUE);

参数

bDisable
[in] 如果为 TRUE,则禁用从注册表加载停靠布局;否则为 FALSE。

注解

如果在加载应用程序状态时必须保留停靠窗格和工具栏的当前布局,请调用此方法。

CDockingManager::DockPane

将窗格停靠到另一个窗格或框架窗口。

void DockPane(
    CBasePane* pBar,
    UINT nDockBarID = 0,
    LPCRECT lpRect = NULL);

参数

pBar
[in] 指向要停靠到的功能条窗格的指针。

nDockBarID
[in] 要停靠的功能条的 id。

lpRect
[in] 目标矩形。

CDockingManager::DockPaneLeftOf

将窗格停靠到另一个窗格的左侧。

BOOL DockPaneLeftOf(
    CPane* pBarToDock,
    CPane* pTargetBar);

参数

pBarToDock
[in] 指向要停靠到 pTargetBar 左侧的窗格的指针

pTargetBar
[in] 指向目标窗格的指针。

返回值

如果窗格已成功停靠,则为 TRUE;否则为 FALSE。

CDockingManager::EnableAutoHidePanes

启用将窗格停靠到主框架,创建停靠窗格,并将其添加到控件条列表中。

BOOL EnableAutoHidePanes(DWORD dwStyle);

参数

dwStyle
[in] 停靠对齐方式。

返回值

如果已成功创建停靠窗格,则为 TRUE;否则为 FALSE。

CDockingManager::EnableDocking

创建停靠窗格,并启用将窗格停靠到主框架。

BOOL EnableDocking(DWORD dwStyle);

参数

dwStyle
[in] 停靠对齐方式。

返回值

如果已成功创建停靠窗格,则为 TRUE;否则为 FALSE。

CDockingManager::EnableDockSiteMenu

显示一个附加按钮,该按钮可在所有停靠窗格的标题栏上打开弹出菜单。

static void EnableDockSiteMenu(BOOL bEnable = TRUE);

参数

bEnable
[in] 如果为 TRUE,则启用停靠站点菜单;否则为 FALSE。

注解

停靠站点菜单显示用于更改窗格停靠状态的以下选项:

  • Floating - 使窗格浮动

  • Docking - 将窗格停靠在主框架上上次停靠该窗格的位置

  • AutoHide - 将窗格切换到自动隐藏模式

  • Hide - 隐藏窗格

默认情况下,不会显示此菜单。

CDockingManager::EnablePaneContextMenu

当用户单击鼠标右键,并且库正在处理 WM_CONTEXTMENU 消息时,告知库显示具有应用程序工具栏和停靠窗格列表的特殊上下文菜单。

void EnablePaneContextMenu(
    BOOL bEnable,
    UINT uiCustomizeCmd,
    const CString& strCustomizeText,
    BOOL bToolbarsOnly = FALSE);

参数

bEnable
[in] 如果为 TRUE,库将启用对自动上下文菜单的支持;如果为 FALSE,库将禁用对自动上下文菜单的支持。

uiCustomizeCmd
[in] 菜单中“自定义”项的命令 id

strCustomizeText
[in]“自定义”项的文本

bToolbarsOnly
[in] 如果为 TRUE,则菜单仅显示应用程序工具栏的列表;如果为 FALSE,则库会将应用程序停靠窗格添加到此列表中。

CDockingManager::FindDockSite

检索位于指定位置且具有指定对齐方式的功能条窗格。

virtual CDockSite* FindDockSite(
    DWORD dwAlignment,
    BOOL bOuter);

参数

dwAlignment
[in] 功能条窗格的对齐方式。

bOuter
[in] 如果为 TRUE,则检索控件条列表中头部位置中的功能条。 否则检索控件条列表中尾部位置中的功能条。

返回值

具有指定对齐方式的停靠窗格;否则为 NULL。

CDockingManager::FindPaneByID

按指定的控件 ID 查找窗格。

virtual CBasePane* FindPaneByID(
    UINT uBarID,
    BOOL bSearchMiniFrames = FALSE);

参数

uBarID
[in] 指定要查找的窗格的控件 ID。

bSearchMiniFrames
[in] 如果为 TRUE,则在搜索中包括所有浮动窗格。 如果为 FALSE,则仅包括停靠窗格。

返回值

具有指定控件 ID 的 CBasePane 对象;如果找不到指定窗格,则为 NULL。

注解

CDockingManager::FindDockSiteByPane

返回具有目标功能条窗格 id 的功能条窗格。

virtual CDockSite* FindDockSiteByPane(CPane* pTargetBar);

参数

pTargetBar
[in] 指向目标功能条窗格的指针。

返回值

具有目标功能条窗格 id 的功能条窗格;如果不存在此类功能条窗格,则为 NULL。

CDockingManager::FixupVirtualRects

将所有当前工具栏位置提交到虚拟矩形。

virtual void FixupVirtualRects();

注解

当用户开始拖动工具栏时,应用程序会记住其在虚拟矩形中的原始位置。 当用户在其停靠站点上移动工具栏时,该工具栏可能会移动其他工具栏。 其他工具栏的原始位置存储在相应的虚拟矩形中。

CDockingManager::FrameFromPoint

返回包含给定点的框架。

virtual CPaneFrameWnd* FrameFromPoint(
    CPoint pt,
    CPaneFrameWnd* pFrameToExclude,
    BOOL bFloatMultiOnly) const;

参数

pt
[in] 通过屏幕坐标指定要选中的点。

pFrameToExclude
[in] 指向要排除的框架的指针。

bFloatMultiOnly
[in] 如果为 TRUE,则排除不是 CMultiPaneFrameWnd 的实例的框架;否则为 FALSE。

返回值

包含给定点的框架;否则为 NULL。

CDockingManager::GetClientAreaBounds

获取包含工作区边界的矩形。

CRect GetClientAreaBounds() const;

void GetClientAreaBounds(CRect& rcClient);

参数

rcClient
[out] 对包含工作区边界的矩形的引用。

返回值

包含工作区边界的矩形。

CDockingManager::GetDockingMode

返回当前停靠模式。

static AFX_DOCK_TYPE GetDockingMode();

返回值

表示当前停靠模式的枚举器值。 可以为下列值之一:

  • DT_STANDARD

  • DT_IMMEDIATE

  • DT_SMART

备注

若要设置停靠模式,请调用 CDockingManager::SetDockingMode

CDockingManager::GetDockSiteFrameWnd

获取指向父窗口框架的指针。

CFrameWnd* GetDockSiteFrameWnd() const;

返回值

指向父窗口框架的指针。

CDockingManager::GetEnabledAutoHideAlignment

返回启用的窗格对齐方式。

DWORD GetEnabledAutoHideAlignment() const;

返回值

CBRS_ALIGN_ 标志的按位组合;如果未启用自动隐藏窗格,则为 0。 有关详细信息,请参阅 CFrameWnd::EnableDocking

注解

该方法返回已启用的自动隐藏控件条对齐方式。 若要启用自动隐藏控件条,请调用 CFrameWndEx::EnableAutoHidePanes

CDockingManager::GetMiniFrames

获取微型框的列表。

const CObList& GetMiniFrames() const;

返回值

包含属于停靠管理器的控件条的微型框列表。

CDockingManager::GetOuterEdgeBounds

获取包含框架外边缘的矩形。

CRect GetOuterEdgeBounds() const;

返回值

包含框架外边缘的矩形。

CDockingManager::GetPaneList

返回属于停靠管理器的窗格的列表。 这包括所有浮动窗格。

void GetPaneList(
    CObList& lstBars,
    BOOL bIncludeAutohide = FALSE,
    CRuntimeClass* pRTCFilter = NULL,
    BOOL bIncludeTabs = FALSE);

参数

lstBars
[in, out] 包含当前停靠管理器的所有窗格。

bIncludeAutohide
[in] 如果为 TRUE,则包含处于自动隐藏模式的窗格;否则为 FALSE。

pRTCFilter
[in] 如果不为 NULL,则返回的列表仅包含指定运行时类的窗格。

bIncludeTabs
[in] 如果为 TRUE,则包含选项卡;否则为 FALSE。

备注

如果停靠管理器中具有任何选项卡式窗格,该方法将返回指向 CBaseTabbedPane 类对象的指针,并且必须显式枚举选项卡。

使用 pRTCFilter 获取特定类的窗格。 例如,可以通过适当地设置此值来仅获取工具栏。

CDockingManager::GetSmartDockingManager

检索指向智能停靠管理器的指针。

CSmartDockingManager* GetSmartDockingManager();

返回值

指向智能停靠管理器的指针。

CDockingManager::GetSmartDockingManagerPermanent

检索指向智能停靠管理器的指针。

CSmartDockingManager* GetSmartDockingManagerPermanent() const;

返回值

指向智能停靠管理器的指针。

CDockingManager::GetSmartDockingParams

返回停靠管理器的智能停靠参数。

static CSmartDockingInfo& GetSmartDockingParams();

返回值

包含当前停靠管理器的智能停靠参数的类。 有关详细信息,请参阅 CSmartDockingInfo 类

注解

CDockingManager::HideAutoHidePanes

隐藏处于自动隐藏模式的窗格。

void HideAutoHidePanes(
    CDockablePane* pBarToExclude = NULL,
    BOOL bImmediately = FALSE);

参数

pBarToExclude
[in] 指向要从隐藏中排除的功能条的指针。

bImmediately
[in] 如果为 TRUE,则立即隐藏窗格;如果为 FALSE,则隐藏具有自动隐藏效果的窗格。

CDockingManager::InsertDockSite

创建停靠窗格并将其插入到控件条列表中。

BOOL InsertDockSite(
    const AFX_DOCKSITE_INFO& info,
    DWORD dwAlignToInsertAfter,
    CDockSite** ppDockBar = NULL);

参数

info
[in] 包含停靠窗格的对齐信息的结构。

dwAlignToInsertAfter
[in] 停靠窗格的对齐方式。

ppDockBar
[out] 指向指向停靠窗格的指针的指针。

返回值

如果已成功创建停靠窗格,则为 TRUE;否则为 FALSE。

CDockingManager::InsertPane

将控件窗格插入到控件条列表中。

BOOL InsertPane(
    CBasePane* pControlBar,
    CBasePane* pTarget,
    BOOL bAfter = TRUE);

参数

pControlBar
[in] 指向控件窗格的指针。

pTarget
[in] 指向目标窗格的指针。

bAfter
[in] 如果为 TRUE,则在目标窗格的位置之后插入窗格;否则为 FALSE。

返回值

如果控件窗格已成功添加到控件条列表中,则为 TRUE;否则为 FALSE。

注解

如果控件窗格已经位于控件条列表中,或者目标窗格在控件条列表中不存在,则此方法返回 false。

CDockingManager::IsDockSiteMenu

指定是否在所有窗格的标题栏上显示弹出菜单。

static BOOL IsDockSiteMenu();

返回值

如果停靠站点菜单显示在所有停靠窗格的标题栏上,则为 TRUE;否则为 FALSE。

注解

可以通过调用 CDockingManager::EnableDockSiteMenu 来启用停靠站点菜单。

CDockingManager::IsInAdjustLayout

确定是否调整了所有窗格的布局。

BOOL IsInAdjustLayout() const;

返回值

如果调整了所有窗格的布局,则为 TRUE;否则为 FALSE。

CDockingManager::IsOLEContainerMode

指定停靠管理器是否处于 OLE 容器模式。

BOOL IsOLEContainerMode() const;

返回值

如果停靠管理器处于 OLE 容器模式,则为 TRUE;否则为 FALSE。

注解

在 OLE 容器模式下,所有停靠窗格和应用程序工具栏都处于隐藏状态。 如果已将 CDockingManager::m_bHideDockingBarsInContainerMode 设置为 TRUE,则窗格也会在此模式下隐藏。

CDockingManager::IsPointNearDockSite

确定指定点是否位于停靠站点附近。

BOOL IsPointNearDockSite(
    CPoint point,
    DWORD& dwBarAlignment,
    BOOL& bOuterEdge) const;

参数

point
[in] 指定的点。

dwBarAlignment
[out] 指定点靠近的边缘。 可能的值为 CBRS_ALIGN_LEFT、CBRS_ALIGN_RIGHT、CBRS_ALIGN_TOP 和 CBRS_ALIGN_BOTTOM。

bOuterEdge
[out] 如果点靠近停靠站点的外部边框,则为 TRUE;否则为 FALSE。

返回值

如果点靠近停靠站点,则返回 TRUE;否则返回 FALSE。

CDockingManager::IsPrintPreviewValid

确定是否设置了打印预览模式。

BOOL IsPrintPreviewValid() const;

返回值

如果设置了打印预览模式,则为 TRUE;否则为 FALSE。

CDockingManager::LoadState

从注册表加载停靠管理器的状态。

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

参数

lpszProfileName
[in] 配置文件名称。

uiID
[in] 停靠管理器的 id。

返回值

如果已成功加载停靠管理器状态,则为 TRUE;否则为 FALSE。

CDockingManager::LockUpdate

锁定给定窗口。

void LockUpdate(BOOL bLock);

参数

bLock
[in] 如果窗口已锁定,则为 TRUE;否则为 FALSE。

备注

当窗口被锁定时,它将无法移动,并且将无法重新绘制。

CDockingManager::m_bHideDockingBarsInContainerMode

指定停靠管理器是否在 OLE 容器模式下隐藏窗格。

AFX_IMPORT_DATA static BOOL m_bHideDockingBarsInContainerMode;

备注

如果要在应用程序处于 OLE 容器模式时使停靠到主框架的所有窗格保持为可见状态,请将此值设置为 FALSE。 默认情况下,此值为 TRUE。

CDockingManager::m_dockModeGlobal

指定全局停靠模式。

AFX_IMPORT_DATA static AFX_DOCK_TYPE m_dockModeGlobal;

备注

默认情况下,每个停靠窗格都使用此停靠模式。 有关此字段可设置为的值的详细信息,请参阅 CBasePane::GetDockingMode

CDockingManager::m_nDockSensitivity

指定停靠敏感度。

AFX_IMPORT_DATA static int m_nDockSensitivity;

备注

停靠敏感度定义在框架将其状态更改为已停靠之前,浮动窗格可接近停靠窗格、停靠站点或其他窗格的距离。

CDockingManager::m_nTimeOutBeforeDockingBarDock

指定在直接停靠模式下停靠停靠窗格之前的时间(毫秒)。

static UINT m_nTimeOutBeforeDockingBarDock;

备注

在停靠窗格之前,框架将等待指定的时长。 这可防止在用户仍在拖动窗格时窗格意外停靠到某个位置。

CDockingManager::m_nTimeOutBeforeToolBarDock

指定在工具栏停靠到主框架窗口之前的时间(毫秒)。

static UINT m_nTimeOutBeforeToolBarDock;

备注

在停靠工具栏之前,框架将等待指定的时长。 这可防止在用户仍在拖动工具栏时工具栏意外停靠到某个位置。

CDockingManager::OnActivateFrame

当框架窗口处于活动状态或停用状态时由框架调用。

virtual void OnActivateFrame(BOOL bActivate);

参数

bActivate
[in] 如果为 TRUE,则框架窗口处于活动状态;如果为 FALSE,则停用框架窗口。

CDockingManager::OnClosePopupMenu

当活动的弹出菜单处理 WM_DESTROY 消息时由框架调用。

void OnClosePopupMenu();

备注

框架在即将关闭当前主窗口时发送 WM_DESTROY 消息。 重写此方法以在 CMFCPopupMenu 对象处理 WM_DESTROY 消息时处理来自属于框架窗口的 CMFCPopupMenu 对象的通知。

CDockingManager::OnMoveMiniFrame

由框架调用以移动微型框窗口。

virtual BOOL OnMoveMiniFrame(CWnd* pFrame);

参数

pFrame
[in] 指向微型框窗口的指针。

返回值

如果该方法成功,则返回 TRUE;否则返回 FALSE。

CDockingManager::OnPaneContextMenu

当框架生成包含窗格列表的菜单时由框架调用。

void OnPaneContextMenu(CPoint point);

参数

point
[in] 指定菜单的位置。

CDockingManager::PaneFromPoint

返回包含给定点的窗格。

virtual CBasePane* PaneFromPoint(
    CPoint point,
    int nSensitivity,
    bool bExactBar = false,
    CRuntimeClass* pRTCBarType = NULL,
    BOOL bCheckVisibility = FALSE,
    const CBasePane* pBarToIgnore = NULL) const;

virtual CBasePane* PaneFromPoint(
    CPoint point,
    int nSensitivity,
    DWORD& dwAlignment,
    CRuntimeClass* pRTCBarType = NULL,
    const CBasePane* pBarToIgnore = NULL) const;

参数

point
[in] 通过屏幕坐标指定要选中的点。

nSensitivity
[in] 用于扩充每个选中窗格的窗口矩形的值。 如果给定点位于此扩充区域中,则窗格满足搜索条件。

bExactBar
[in] 如果为 TRUE,则忽略 nSensitivity 参数;否则为 FALSE

pRTCBarType
[in] 如果不为 NULL,则该方法仅搜索指定类型的窗格。

bCheckVisibility
[in] 如果为 TRUE,则仅选中可见窗格;否则为 FALSE。

dwAlignment
[out] 如果在指定点找到窗格,则此参数包含最靠近指定点的窗格的一侧。 有关详细信息,请参阅“备注”部分。

pBarToIgnore
[in] 如果不为 NULL,该方法将忽略此参数指定的窗格。

返回值

包含给定点的 CBasePane 派生对象;如果未找到窗格,则为 NULL。

注解

当函数返回并且找到窗格时,dwAlignment 包含指定点的对齐方式。 例如,如果该点最靠近窗格顶部,则 dwAlignment 设置为 CBRS_ALIGN_TOP

CDockingManager::ProcessPaneContextMenuCommand

由框架调用以选中或清除指定命令的复选框,并重新计算显示的窗格的布局。

BOOL ProcessPaneContextMenuCommand(
    UINT nID,
    int nCode,
    void* pExtra,
    AFX_CMDHANDLERINFO* pHandlerInfo);

参数

nID
[in] 菜单中控件条的 id。

nCode
[in] 命令通知代码。

pExtra
[in] 指向 void 的指针,如果 nCode 为 CN_UPDATE_COMMAND_UI,则该指针将被强制转换为指向 CCmdUI 的指针

pHandlerInfo
[in] 指向信息结构的指针。 未使用此参数。

返回值

如果 pEXtra 不为 NULL 且 nCode 等于 CN_UPDATE_COMMAND_UI,或者如果存在具有指定 nID 的控件条,则为 TRUE

CDockingManager::RecalcLayout

重新计算控件列表中存在的控件的内部布局。

virtual void RecalcLayout(BOOL bNotify = TRUE);

参数

bNotify
[in] 未使用此参数。

CDockingManager::ReleaseEmptyPaneContainers

释放空窗格容器。

void ReleaseEmptyPaneContainers();

CDockingManager::RemoveHiddenMDITabbedBar

移除指定的隐藏功能条窗格。

void RemoveHiddenMDITabbedBar(CDockablePane* pBar);

参数

pBar
[in] 指向要移除的功能条窗格的指针。

CDockingManager::RemoveMiniFrame

从微型框列表中移除指定的框架。

virtual BOOL RemoveMiniFrame(CPaneFrameWnd* pWnd);

参数

pWnd
[in] 指向要移除的框架的指针。

返回值

如果已移除指定框架,则为 TRUE;否则为 FALSE。

CDockingManager::RemovePaneFromDockManager

取消注册窗格,并将其从停靠管理器中的列表中移除。

void RemovePaneFromDockManager(
    CBasePane* pWnd,
    BOOL bDestroy,
    BOOL bAdjustLayout,
    BOOL bAutoHide = FALSE,
    CBasePane* pBarReplacement = NULL);

参数

pWnd
[in] 指向要移除的窗格的指针。

bDestroy
[in] 如果为 TRUE,则销毁已删除的窗格。

bAdjustLayout
[in] 如果为 TRUE,则立即调整停靠布局。

bAutoHide
[in] 如果为 TRUE,则从自动隐藏功能条列表中移除窗格。 如果为 FALSE,则从常规窗格列表中移除窗格。

pBarReplacement
[in] 指向替换已移除窗格的窗格的指针。

CDockingManager::ReplacePane

用一个窗格替换另一个窗格。

BOOL ReplacePane(
    CDockablePane* pOriginalBar,
    CDockablePane* pNewBar);

参数

pOriginalBar
[in] 指向原始窗格的指针。

pNewBar
[in] 指向替换原始窗格的窗格的指针。

返回值

如果已成功替换窗格,则为 TRUE;否则为 FALSE。

CDockingManager::ResortMiniFramesForZOrder

使用微型框列表中的框架。

void ResortMiniFramesForZOrder();

CDockingManager::SaveState

将停靠管理器的状态保存到注册表。

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

参数

lpszProfileName
[in] 指向注册表项的路径。

uiID
[in] 停靠管理器 ID。

返回值

如果已成功保存状态,则为 TRUE;否则为 FALSE。

备注

将停靠管理器的状态保存到注册表涉及保存停靠管理器中存在的控件条的状态、自动隐藏功能条的状态以及微型框的状态。

CDockingManager::SendMessageToMiniFrames

将指定消息发送到所有微型框。

BOOL SendMessageToMiniFrames(
    UINT uMessage,
    WPARAM wParam = 0,
    LPARAM lParam = 0);

参数

uMessage
[in] 要发送的消息。

wParam
[in] 其他消息相关信息。

lParam
[in] 其他消息相关信息。

返回值

始终为 TRUE。

CDockingManager::Serialize

将停靠管理器写入存档。

void Serialize(CArchive& ar);

参数

ar
[in] 对存档对象的引用。

备注

将停靠管理器写入存档涉及确定停靠控件条和滑块的数量,以及将控件条、微型框、自动隐藏功能条和 MDI 选项卡式功能条写入存档。

CDockingManager::SetAutohideZOrder

设置控件条和指定窗格的大小、宽度和高度。

void SetAutohideZOrder(CDockablePane* pAHDockingBar);

参数

pAHDockingBar
[in] 指向可停靠的窗格的指针。

CDockingManager::SetDockingMode

设置停靠模式。

static void SetDockingMode(
    AFX_DOCK_TYPE dockMode,
    AFX_SMARTDOCK_THEME theme = AFX_SDT_DEFAULT);

参数

dockMode
指定新停靠模式。 有关详细信息,请参阅“备注”部分。

theme
指定要用于智能停靠标记的主题。 它可以是以下枚举值之一:AFX_SDT_DEFAULT、AFX_SDT_VS2005、AFX_SDT_VS2008。

注解

调用此静态方法以设置停靠模式。

dockMode 可以为下列值之一

  • DT_STANDARD - Visual Studio .NET 2003 中实现的标准停靠模式。 在不使用拖动上下文的情况下拖动窗格。

  • DT_IMMEDIATE - Microsoft Visio 中实现的直接停靠模式。 使用拖动上下文拖动窗格,但不显示任何标记。

  • DT_SMART - Visual Studio 2005 中实现的智能停靠模式。 使用拖动上下文拖动窗格,并显示智能标记,这些标记显示可以停靠窗格的位置。

CDockingManager::SetDockState

设置控件条、微型框和自动隐藏功能条的停靠状态。

virtual void SetDockState();

CDockingManager::SetPrintPreviewMode

设置打印预览中显示的功能条的打印预览模式。

void SetPrintPreviewMode(
    BOOL bPreview,
    CPrintPreviewState* pState);

参数

bPreview
[in] 如果设置了打印预览模式,则为 TRUE;否则为 FALSE。

pState
[in] 指向预览状态的指针。 未使用此参数。

CDockingManager::SetSmartDockingParams

设置定义智能停靠行为的参数。

static void SetSmartDockingParams(CSmartDockingInfo& params);

参数

params
[in, out] 定义智能停靠的参数。

备注

如果要自定义智能停靠标记的外观、颜色或形状,请调用此方法。

若要使用智能停靠标记的默认外观,请将 CSmartDockingInfo 类的未初始化实例传递给 params

CDockingManager::ShowDelayShowMiniFrames

显示或隐藏微型框的窗口。

void ShowDelayShowMiniFrames(BOOL bshow);

参数

bShow
[in] 如果为 TRUE,则使所示框架的窗口处于活动状态;如果为 FALSE,则隐藏框架的窗口。

CDockingManager::ShowPanes

显示或隐藏控件的窗格和自动隐藏功能条。

virtual BOOL ShowPanes(BOOL bShow);

参数

bShow
[in] 如果为 TRUE,则显示窗格;如果为 FALSE,则隐藏窗格。

返回值

始终为 FALSE。

CDockingManager::StartSDocking

根据智能停靠管理器的对齐方式启动指定窗口的智能停靠。

void StartSDocking(CWnd* pDockingWnd);

参数

pDockingWnd
[in] 指向要停靠的窗口的指针。

CDockingManager::StopSDocking

停止智能停靠。

void StopSDocking();

CDockingManager::GetSmartDockingTheme

一种静态方法,返回用于显示智能停靠标记的主题。

static AFX_SMARTDOCK_THEME __stdcall GetSmartDockingTheme();

返回值

返回以下枚举值之一:AFX_SDT_DEFAULT、AFX_SDT_VS2005、AFX_SDT_VS2008。

备注

另请参阅

层次结构图

CObject 类
CFrameWndEx 类
CDockablePane 类
CPaneFrameWnd 类