CPaneFrameWnd 类
有关详细信息,请参阅所安装的 Visual Studio 的 C\atlmfc\src\mfc 文件夹中的源代码。
实现包含一个窗格的微型框架窗口。 此窗格填满窗口的工作区。
语法
class CPaneFrameWnd : public CWnd
成员
公共方法
受保护方法
名称 | 描述 |
---|---|
CPaneFrameWnd::OnCheckRollState | 确定是否应上滚或下滚微型框架窗口。 |
CPaneFrameWnd::OnDrawBorder | 绘制微型框架窗口的边框。 |
数据成员
名称 | 描述 |
---|---|
CPaneFrameWnd::m_bUseSaveBits | 指定是否注册具有 CS_SAVEBITS 类样式的窗口类。 |
备注
当窗格从停靠状态切换到浮动状态时,框架会自动创建 CPaneFrameWnd
对象。
可使用其可见内容(立即停靠)或拖动矩形(标准停靠)来拖动微型框架窗口。 微型框架的容器窗格的停靠模式确定微型框架的拖动行为。 有关详细信息,请参阅 CBasePane::GetDockingMode。
微型框架窗口根据包含的窗格样式在标题上显示按钮。 如果可以关闭窗格 (CBasePane::CanBeClosed),它将显示“关闭”按钮。 如果窗格具有 AFX_CBRS_AUTO_ROLLUP 样式,它将显示指针。
如果从 CPaneFrameWnd
派生类,则必须告诉框架如何创建类。 通过重写 CPane::CreateDefaultMiniframe 创建类,或设置 CPane::m_pMiniFrameRTC
成员使其指向类的运行时类信息。
继承层次结构
CPaneFrameWnd
要求
标头:afxPaneFrameWnd.h
CPaneFrameWnd::AddPane
添加窗格。
virtual void AddPane(CBasePane* pWnd);
参数
pWnd
[in] 要添加的窗格。
CPaneFrameWnd::AddRemovePaneFromGlobalList
从全局列表添加或删除窗格。
static BOOL __stdcall AddRemovePaneFromGlobalList(
CBasePane* pWnd,
BOOL bAdd);
参数
pWnd
[in] 要添加或删除的窗格。
bAdd
[in] 如果为非零,请添加窗格。 如果为 0,请删除窗格。
返回值
如果此方法成功,则返回非零值;否则返回 0。
CPaneFrameWnd::AdjustLayout
调整微型框架窗口的布局。
virtual void AdjustLayout();
CPaneFrameWnd::AdjustPaneFrames
virtual void AdjustPaneFrames();
注解
CPaneFrameWnd::CalcBorderSize
计算微型框窗口的边框大小。
virtual void CalcBorderSize(CRect& rectBorderSize) const;
参数
rectBorderSize
[out] 包含微型框窗口的边框大小(以像素为单位)。
备注
框架调用此方法以计算微型框窗口的边框大小。 返回的大小取决于微型框窗口是包含工具栏还是 CDockablePane。
CPaneFrameWnd::CalcExpectedDockedRect
计算停靠窗口的预期矩形。
virtual void CalcExpectedDockedRect(
CWnd* pWndToDock,
CPoint ptMouse,
CRect& rectResult,
BOOL& bDrawTab,
CDockablePane** ppTargetBar);
参数
pWndToDock
[in] 指向要停靠的窗口的指针。
ptMouse
[in] 鼠标位置。
rectResult
[out] 计算的矩形。
bDrawTab
[out] 如果为 TRUE,则绘制选项卡。如果为 FALSE,则不要绘制选项卡。
ppTargetBar
[out] 指向目标窗格的指针。
注解
如果用户将窗口拖到 ptMouse 指定的点,并将其停靠在那里,此方法将计算该窗口占用的矩形。
CPaneFrameWnd::CanBeAttached
确定是否可将当前窗格停靠到另一个窗格或框架窗口。
virtual BOOL CanBeAttached() const;
返回值
如果可将当前窗格停靠到另一个窗格或框架窗口,则为 TRUE;否则为 FALSE。
CPaneFrameWnd::CanBeDockedToPane
确定是否可将微型框架窗口停靠到窗格。
virtual BOOL CanBeDockedToPane(const CDockablePane* pDockingBar) const;
参数
pDockingBar
[in] 窗格。
返回值
如果微型框可以停靠到 pDockingBar,则返回非零值;否则返回 0。
CPaneFrameWnd::CheckGripperVisibility
virtual void CheckGripperVisibility();
备注
CPaneFrameWnd::ConvertToTabbedDocument
将窗格转换为选项卡式文档。
virtual void ConvertToTabbedDocument();
CPaneFrameWnd::Create
创建微型框窗口,并将其附加到 CPaneFrameWnd 对象。
virtual BOOL Create(
LPCTSTR lpszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
CCreateContext* pContext = NULL);
参数
lpszWindowName
[in] 指定要在微型框窗口中显示的文本。
dwStyle
[in] 指定窗口样式。 有关详细信息,请参阅窗口样式。
rect
[in] 指定微型框窗口的初始大小和位置。
pParentWnd
[in、out] 指定微型框窗口的父框架。 此值不得为 NULL。
pContext
[in、out] 指定用户定义的上下文。
返回值
如果成功创建窗口,则为 TRUE;否则为 FALSE。
备注
可通过两个步骤创建微型框窗口。 第一步,框架创建一个 CPaneFrameWnd
对象。 第二步,框架调用 Create
以创建 Windows 微型框窗口并将其附加到 CPaneFrameWnd
对象。
CPaneFrameWnd::CreateEx
创建微型框窗口,并将其附加到 CPaneFrameWnd 对象。
virtual BOOL CreateEx(
DWORD dwStyleEx,
LPCTSTR lpszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
CCreateContext* pContext=NULL);
参数
dwStyleEx
[in] 指定扩展窗口样式。 有关详细信息,请参阅扩展窗口样式
lpszWindowName
[in] 指定要在微型框窗口中显示的文本。
dwStyle
[in] 指定窗口样式。 有关详细信息,请参阅窗口样式。
rect
[in] 指定微型框窗口的初始大小和位置。
pParentWnd
[in、out] 指定微型框窗口的父框架。 此值不得为 NULL。
pContext
[in、out] 指定用户定义的上下文。
返回值
如果成功创建窗口,则为 TRUE;否则为 FALSE。
备注
可通过两个步骤创建微型框窗口。 第一步,框架创建一个 CPaneFrameWnd
对象。 第二步,框架调用 Create
以创建 Windows 微型框窗口并将其附加到 CPaneFrameWnd
对象。
CPaneFrameWnd::DockPane
停靠窗格。
virtual CDockablePane* DockPane(BOOL& bWasDocked);
参数
bWasDocked
[out] 如果窗格已停靠,则为 TRUE;否则为 FALSE。
返回值
如果操作成功,则返回窗格停靠到的 CDockablePane
;否则返回 NULL。
CPaneFrameWnd::FindFloatingPaneByID
在浮动窗格的全局列表中查找具有指定控件 ID 的窗格。
static CBasePane* FindFloatingPaneByID(UINT nID);
参数
nID
[in] 表示要查找的窗格的控件 ID。
返回值
具有指定控件 ID 的窗格;如果没有窗格具有指定的控件 ID,则返回 NULL。
CPaneFrameWnd::FrameFromPoint
查找包含指定点的微型框窗口。
static CPaneFrameWnd* __stdcall FrameFromPoint(
CPoint pt,
int nSensitivity,
CPaneFrameWnd* pFrameToExclude = NULL,
BOOL bFloatMultiOnly = FALSE);
参数
pt
[in] 点,以屏幕坐标表示。
nSensitivity
[in] 按此大小增加微型框窗口的搜索区域。 如果给定点位于增加的区域,则微型框窗口满足搜索条件。
pFrameToExclude
[in] 指定要从搜索中排除的微型框窗口。
bFloatMultiOnly
[in] 如果为 TRUE,则仅搜索具有 CBRS_FLOAT_MULTI 样式的微型框窗口。 如果为 FALSE,则搜索所有微型框窗口。
返回值
返回指向包含 pt 的微型框窗口的指针;否则返回 NULL。
CPaneFrameWnd::GetCaptionHeight
返回微型框架窗口标题的高度。
virtual int GetCaptionHeight() const;
返回值
微型框窗口的高度(以像素为单位)。
备注
调用此方法可确定微型框窗口的高度。 默认情况下,高度设置为 SM_CYSMCAPTION。 有关详细信息,请参阅 GetSystemMetrics 函数。
CPaneFrameWnd::GetCaptionRect
计算微型框架窗口标题的边框矩形。
virtual void GetCaptionRect(CRect& rectCaption) const;
参数
rectCaption
[out] 包含微型框窗口标题的大小和位置,以屏幕坐标表示。
注解
此方法由框架调用,用于计算微型框窗口标题的边框。
CPaneFrameWnd::GetCaptionText
返回标题文本。
virtual CString GetCaptionText();
返回值
微型框窗口的标题文本。
备注
当框架显示标题文本时,该框架将调用此方法。
CPaneFrameWnd::GetDockingManager
CDockingManager* GetDockingManager() const;
返回值
备注
CPaneFrameWnd::GetDockingMode
返回停靠模式。
virtual AFX_DOCK_TYPE GetDockingMode() const;
返回值
停靠模式。 以下值之一:
DT_STANDARD
DT_IMMEDIATE
DT_SMART
CPaneFrameWnd::GetFirstVisiblePane
返回包含在微型框架窗口中的第一个可见窗格。
virtual CWnd* GetFirstVisiblePane() const;
返回值
返回微型框窗口中的第一个窗格;如果微型框架窗口不包含任何窗格,则返回 NULL。
CPaneFrameWnd::GetHotPoint
CPoint GetHotPoint() const;
返回值
注解
CPaneFrameWnd::GetPane
返回包含在微型框架窗口中的窗格。
virtual CWnd* GetPane() const;
返回值
返回微型框中包含的窗格;如果微型框架窗口不包含任何窗格,则返回 NULL。
备注
CPaneFrameWnd::GetPaneCount
返回包含在微型框架窗口中的窗格数。
virtual int GetPaneCount() const;
返回值
微型框窗口中的窗格数。 此值可以为零。
备注
CPaneFrameWnd::GetParent
CWnd* GetParent();
返回值
备注
CPaneFrameWnd::GetPinState
BOOL GetPinState() const;
返回值
备注
CPaneFrameWnd::GetRecentFloatingRect
CRect GetRecentFloatingRect() const;
返回值
备注
CPaneFrameWnd::GetVisiblePaneCount
返回包含在微型框架窗口中的可见窗格数。
virtual int GetVisiblePaneCount() const;
返回值
可见窗格的数目。
注解
CPaneFrameWnd::HitTest
确定微型框架窗口的哪一部分位于给定点。
virtual LRESULT HitTest(
CPoint point,
BOOL bDetectCaption);
参数
point
[in] 要测试的点。
bDetectCaption
[in] 如果为 TRUE,则检查标题的点。 如果为 FALSE,则忽略标题。
返回值
以下值之一:
值 | 含义 |
---|---|
HTNOWHERE | 该点位于微型框窗口外部。 |
HTCLIENT | 该点位于工作区中。 |
HTCAPTION | 该点位于标题上。 |
HTTOP | 该点位于顶部。 |
HTTOPLEFT | 该点位于左上角。 |
HTTOPRIGHT | 该点位于右上角。 |
HTLEFT | 该点位于左侧。 |
HTRIGHT | 该点位于右侧。 |
HTBOTTOM | 该点位于底部。 |
HTBOTTOMLEFT | 该点位于左下角。 |
HTBOTTOMRIGHT | 该点位于右下角。 |
CPaneFrameWnd::IsCaptured
BOOL IsCaptured() const;
返回值
备注
CPaneFrameWnd::IsDelayShow
BOOL IsDelayShow() const;
返回值
注解
CPaneFrameWnd::IsRollDown
确定是否应下滚微型框架窗口。
virtual BOOL IsRollDown() const;
返回值
如果必须向下滚动微型框窗口,则为 TRUE;否则为 FALSE。
备注
框架调用此方法来确定是否应向下滚动微型框窗口。 如果微型框窗口至少包含一个具有 AFX_CBRS_AUTO_ROLLUP 标志的窗格,则启用向上滚动/向下滚动功能。 创建窗格时将设置此标志。 有关详细信息,请参阅 CBasePane::CreateEx。
默认情况下,框架检查鼠标指针是否位于微型框窗口边框内,以确定窗口是否必须向下滚动。 可以在派生类中重写此行为。
CPaneFrameWnd::IsRollUp
确定是否应上滚微型框架窗口。
virtual BOOL IsRollUp() const;
返回值
如果必须向上滚动微型框窗口,则为 TRUE;否则为 FALSE。
备注
框架调用此方法来确定是否应向上滚动微型框窗口。 如果微型框窗口至少包含一个具有 AFX_CBRS_AUTO_ROLLUP 标志的窗格,则启用向上滚动/向下滚动功能。 创建窗格时将设置此标志。 有关详细信息,请参阅 CBasePane::CreateEx。
默认情况下,框架检查鼠标指针是否位于微型框窗口边框内,以确定窗口是否必须向上滚动。 可以在派生类中重写此行为。
CPaneFrameWnd::KillDockingTimer
停止停靠计时器。
void KillDockingTimer();
CPaneFrameWnd::LoadState
从注册表加载窗格的状态。
virtual BOOL LoadState(
LPCTSTR lpszProfileName = NULL,
UINT uiID = (UINT) -1);
参数
lpszProfileName
[in] 配置文件名称。
uiID
[in] 窗格 ID。
返回值
如果已成功加载窗格状态,则为 TRUE;否则为 FALSE。
CPaneFrameWnd::m_bUseSaveBits
指定是否注册具有 CS_SAVEBITS 类样式的窗口类。
AFX_IMPORT_DATA static BOOL m_bUseSaveBits;
注解
将此静态成员设置为 TRUE 以注册具有 CS_SAVEBITS 样式的微型框窗口类。 这可能有助于在用户拖动微型框窗口时减少闪烁。
CPaneFrameWnd::OnBeforeDock
确定停靠是否可能。
virtual BOOL OnBeforeDock();
返回值
如果可停靠,则为 TRUE;否则为 FALSE。
CPaneFrameWnd::OnCheckRollState
确定是否应上滚或下滚微型框架窗口。
virtual void OnCheckRollState();
注解
框架调用此方法来确定应向上还是向下滚动微型框窗口。
默认情况下,框架调用 CPaneFrameWnd::IsRollUp 和 CPaneFrameWnd::IsRollDown,并且只拉伸或还原微型框窗口。 可以在派生类中重写此方法以使用不同的视觉效果。
CPaneFrameWnd::OnDockToRecentPos
将微型框架窗口停靠在其最新的位置。
virtual void OnDockToRecentPos();
CPaneFrameWnd::OnDrawBorder
绘制微型框架窗口的边框。
virtual void OnDrawBorder(CDC* pDC);
参数
pDC
[in] 用于绘制边框的设备上下文。
备注
框架调用此方法来绘制微型框窗口的边框。
CPaneFrameWnd::OnKillRollUpTimer
停止汇总计时器。
virtual void OnKillRollUpTimer();
CPaneFrameWnd::OnMovePane
按指定偏移量移动微型框架窗口。
virtual void OnMovePane(
CPane* pBar,
CPoint ptOffset);
参数
pBar
[in] 指向窗格的指针(已忽略)。
ptOffset
[in] 将窗格移动的偏移量。
CPaneFrameWnd::OnPaneRecalcLayout
调整微型框窗口中窗格的布局。
virtual void OnPaneRecalcLayout();
备注
在必须调整微型框窗口中窗格的布局时,框架将调用此方法。
默认情况下,系统将窗格定位到可覆盖微型框窗口的完整工作区的位置。
CPaneFrameWnd::OnSetRollUpTimer
设置汇总计时器。
virtual void OnSetRollUpTimer();
CPaneFrameWnd::OnShowPane
隐藏或显示微型框架窗口的窗格时,由框架进行调用。
virtual void OnShowPane(
CDockablePane* pBar,
BOOL bShow);
参数
pBar
[in] 当前显示或隐藏的窗格。
bShow
[in] 如果显示窗格,则为 TRUE;如果窗格处于隐藏状态,则为 FALSE。
备注
隐藏或显示微型框窗口的窗格时,由框架进行调用。 默认实现不执行任何操作。
CPaneFrameWnd::Pin
void Pin(BOOL bPin = TRUE);
参数
[in] bPin
备注
CPaneFrameWnd::PaneFromPoint
如果窗格在微型框架窗口内包含用户提供的点,则返回窗格。
virtual CBasePane* PaneFromPoint(
CPoint point,
int nSensitivity,
BOOL bCheckVisibility);
参数
point
[in] 用户单击的点,以屏幕坐标表示。
nSensitivity
[in] 未使用此参数。
bCheckVisibility
[in] 如果指定只应返回可见窗格,则为 TRUE;否则为 FALSE。
返回值
返回用户单击的窗格;如果该位置没有窗格,则返回 NULL。
备注
调用此方法以获取包含给定点的窗格。
CPaneFrameWnd::RedrawAll
重绘所有微型框架窗口。
static void RedrawAll();
备注
此方法通过对每个窗口调用 CWnd::RedrawWindow 来更新所有微型框窗口。
CPaneFrameWnd::RemoveNonValidPanes
由框架调用以删除非有效窗格。
virtual void RemoveNonValidPanes();
CPaneFrameWnd::RemovePane
从微型框架窗口删除窗格。
virtual void RemovePane(
CBasePane* pWnd,
BOOL bDestroy = FALSE,
BOOL bNoDelayedDestroy = FALSE);
参数
pWnd
[in] 指向要删除的窗格的指针。
bDestroy
[in] 指定微型框窗口发生的情况。 如果 bDestroy 为 TRUE,此方法将立即销毁微型框窗口。 如果为 FALSE,此方法将在特定延迟时间后销毁微型框窗口。
bNoDelayedDestroy
[in] 如果为 TRUE,则禁用延迟销毁。 如果为 FALSE,则启用延迟销毁。
备注
框架可以立刻或在特定延迟时间后销毁微型框窗口。 如果要延迟销毁微型框窗口,请将 FALSE 传入 bNoDelayedDestroy 参数。 当框架处理 AFX_WM_CHECKEMPTYMINIFRAME 消息时,将发生延迟销毁。
CPaneFrameWnd::ReplacePane
用一个窗格替换另一个窗格。
virtual void ReplacePane(
CBasePane* pBarOrg,
CBasePane* pBarReplaceWith);
参数
pBarOrg
[in] 指向原始窗格的指针。
pBarReplaceWith
[in] 指向替换原始窗格的窗格的指针。
CPaneFrameWnd::SaveState
将窗格的状态保存到注册表。
virtual BOOL SaveState(
LPCTSTR lpszProfileName = NULL,
UINT uiID = (UINT) -1);
参数
lpszProfileName
[in] 配置文件名称。
uiID
[in] 窗格 ID。
返回值
如果已成功保存窗格状态,则为 TRUE;否则为 FALSE。
CPaneFrameWnd::SetCaptionButtons
设置标题按钮。
virtual void SetCaptionButtons(DWORD dwButtons);
参数
dwButtons
[in] 以下值的位或组合:
AFX_CAPTION_BTN_CLOSE
AFX_CAPTION_BTN_PIN
AFX_CAPTION_BTN_MENU
AFX_CAPTION_BTN_CUSTOMIZE
CPaneFrameWnd::SetDelayShow
void SetDelayShow(BOOL bDelayShow);
参数
[in] bDelayShow
注解
CPaneFrameWnd::SetDockingManager
void SetDockingManager(CDockingManager* pManager);
参数
[in] pManager
备注
CPaneFrameWnd::SetDockingTimer
设置停靠计时器。
void SetDockingTimer(UINT nTimeOut);
参数
nTimeOut
[in] 超时值(以毫秒为单位)。
CPaneFrameWnd::SetDockState
设置停靠状态。
virtual void SetDockState(CDockingManager* pDockManager);
参数
pDockManager
[in] 指向停靠管理器的指针。
CPaneFrameWnd::SetHotPoint
void SetHotPoint(CPoint& ptNew);
参数
[in] ptNew
注解
CPaneFrameWnd::SetPreDockState
由框架调用以设置预停靠状态。
virtual BOOL SetPreDockState(
AFX_PREDOCK_STATE preDockState,
CBasePane* pBarToDock = NULL,
AFX_DOCK_METHOD dockMethod = DM_MOUSE);
参数
preDockState
[in] 可能的值:
PDS_NOTHING、
PDS_DOCK_REGULAR、
PDS_DOCK_TO_TAB
pBarToDock
[in] 指向要停靠的窗格的指针。
dockMethod
[in] 停靠方法。 (忽略此参数。)
返回值
如果取消停靠微型框窗口,则为 TRUE;如果停靠,则为 FALSE。
CPaneFrameWnd::SizeToContent
调整微型框窗口大小,使其大小等于包含窗格的大小。
virtual void SizeToContent();
备注
调用此方法以将微型框窗口的大小调整为包含窗格的大小。
CPaneFrameWnd::StartTearOff
移走菜单。
BOOL StartTearOff(CMFCPopu* pMenu);
参数
pMenu
[in] 指向菜单的指针。
返回值
如果此方法成功,则为 TRUE;否则为 FALSE。
CPaneFrameWnd::StoreRecentDockSiteInfo
virtual void StoreRecentDockSiteInfo(CPane* pBar);
参数
[in] pBar
备注
CPaneFrameWnd::StoreRecentTabRelatedInfo
virtual void StoreRecentTabRelatedInfo(
CDockablePane* pDockingBar,
CDockablePane* pTabbedBar);
参数
[in] pDockingBar
[in] pTabbedBar