1.4 CDockBar类
该类所代表的子窗口是CControlBar的父窗口,而Frame窗口则是该类所在的子窗口的父窗口。从表面上看,CControlBar Dock在了Frame窗口中,但实际上,中间还有一层窗口,这就是CDockBar。前面已经提到,CFrameWnd提供了四个CDockBar实例,分别对应四个方向。
该类的定义位于afxpriv.h中(同CDockContext一样),实现位于bardock.cpp中。下面是该类的定义:
class CDockBar : public CControlBar
{
DECLARE_DYNAMIC(CDockBar)
// Construction
public:
/* explicit */ CDockBar(BOOL bFloating = FALSE); // TRUE if attached to CMiniDockFrameWnd
virtual BOOL Create(CWnd* pParentWnd, DWORD dwStyle, UINT nID);
// Attributes
BOOL m_bFloating;
virtual BOOL IsDockBar() const;
int GetDockedCount() const;
virtual int GetDockedVisibleCount() const;
// Operations
void DockControlBar(CControlBar* pBar, LPCRECT lpRect = NULL);
void ReDockControlBar(CControlBar* pBar, LPCRECT lpRect = NULL);
BOOL RemoveControlBar(CControlBar*, int nPosExclude = -1, int nAddPlaceHolder = 0);
void RemovePlaceHolder(