📄 bcgpbarcontainer.h
字号:
// BCGBarContainer.h: interface for the CBCGPBarContainer class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_BCGPBARCONTAINER_H__12D1AE1B_A125_4319_B94F_1A4F0C396BFD__INCLUDED_)
#define AFX_BCGPBARCONTAINER_H__12D1AE1B_A125_4319_B94F_1A4F0C396BFD__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "BCGCBPro.h"
class CBCGPBaseControlBar;
class CBCGPControlBar;
class CBCGPDockingControlBar;
class CBCGPSlider;
class BCGCBPRODLLEXPORT CBCGPBarContainer : public CObject
{
friend class CBCGPBarContainerManager;
friend class CBCGPRecentContainerInfo;
DECLARE_DYNAMIC (CBCGPBarContainer);
public:
CBCGPBarContainer (CBCGPBarContainerManager* pManager = NULL,
CBCGPDockingControlBar* pLeftBar = NULL,
CBCGPDockingControlBar* pRightBar = NULL,
CBCGPSlider* pSlider = NULL);
virtual ~CBCGPBarContainer();
CBCGPDockingControlBar* AddControlBar (CBCGPDockingControlBar* pBar);
BOOL AddSubContainer (CBCGPBarContainer* pContainer, BOOL bRightNodeNew);
enum BC_FIND_CRITERIA
{
BC_FIND_BY_LEFT_BAR,
BC_FIND_BY_RIGHT_BAR,
BC_FIND_BY_SLIDER,
BC_FIND_BY_CONTAINER
};
CBCGPBarContainer* FindSubContainer (const CObject* pObject,
BC_FIND_CRITERIA findCriteria);
BOOL IsContainerEmpty () const;
BOOL IsLeftPartEmpty (BOOL bCheckVisibility = FALSE) const;
BOOL IsRightPartEmpty (BOOL bCheckVisibility = FALSE) const;
BOOL IsContainerVisible () const;
int GetNodeCount () const;
int GetTotalReferenceCount () const;
const CBCGPDockingControlBar* GetLeftBar () const {return m_pBarLeftTop;}
const CBCGPDockingControlBar* GetRightBar () const {return m_pBarRightBottom;}
const CBCGPSlider* GetSlider () const {return m_pSlider;}
const CBCGPBarContainer* GetLeftContainer () const {return m_pLeftContainer;}
const CBCGPBarContainer* GetRightContainer () const {return m_pRightContainer;}
DWORD GetRecentSliderStyle () const {return m_dwRecentSliderStyle;}
CRect GetRecentSliderRect () const {return m_rectRecentSlider;}
CBCGPBarContainer* GetParentContainer () const {return m_pParentContainer;}
void SetBar (CBCGPDockingControlBar* pBar, BOOL bLeft);
void SetContainer (CBCGPBarContainer* pContainer, BOOL bLeft);
void SetSlider (CBCGPSlider* pSlider) {m_pSlider = pSlider;}
BOOL IsLeftContainer () const;
BOOL IsLeftBar (CBCGPDockingControlBar* pBar) const;
void SetParentContainer (CBCGPBarContainer* p) {m_pParentContainer = p;}
BOOL SetUpByID (UINT nID, CBCGPDockingControlBar* pBar);
CBCGPDockingControlBar* FindTabbedBar (UINT nID);
// Overrides
virtual void GetWindowRect (CRect& rect, BOOL bIgnoreVisibility = FALSE) const;
virtual void GetMinSize (CSize& size) const;
virtual void GetMinSizeLeft (CSize& size) const;
virtual void GetMinSizeRight(CSize& size) const;
virtual int GetResizeStep () const;
virtual void OnShowControlBar (CBCGPDockingControlBar* pBar, BOOL bShow);
virtual void RemoveControlBar (CBCGPDockingControlBar* pBar);
virtual void DeleteControlBar (CBCGPDockingControlBar* pBar,
BC_FIND_CRITERIA barType);
virtual void StoreRecentDockInfo (CBCGPDockingControlBar* pBar);
void OnDeleteHideControlBar (CBCGPDockingControlBar* pBar, BOOL bHide);
virtual void Move (CPoint ptNewLeftTop);
int StretchContainer (int nOffset, BOOL bStretchHorz, BOOL bLeftBar,
BOOL bMoveSlider, HDWP& hdwp);
int OnMoveInternalSlider (int nOffset, HDWP& hdwp);
void ResizeBar (int nOffset, CBCGPControlBar* pBar, CBCGPBarContainer* pContainer,
BOOL bHorz, BOOL bLeftBar, HDWP& hdwp);
int CalcAvailableBarSpace (int nRequiredOffset, CBCGPControlBar* pBar,
CBCGPBarContainer* pContainer, BOOL bLeftBar);
CSize CalcAvailableSpace (CSize sizeStretch, BOOL bLeftBar);
void ResizeContainer (CRect rect, HDWP& hdwp, BOOL bRedraw = FALSE);
void ResizePartOfContainer (int nOffset, BOOL bLeftPart, HDWP& hdwp);
void SetRecentPercent (int nRecentPercent) {m_nRecentPercent = nRecentPercent;};
int GetRecentPercent () {return m_nRecentPercent;}
void CalculateRecentSize ();
void CheckSliderVisibility ();
void RemoveNonValidBars ();
void AddRef ();
DWORD Release ();
LONG GetRefCount () {return m_dwRefCount;}
void Serialize (CArchive& ar);
void ReleaseEmptyContainer ();
CBCGPBarContainer* Copy (CBCGPBarContainer* pParentContainer);
CList<UINT, UINT>* GetAssociatedSiblingBarIDs (CBCGPDockingControlBar* pBar);
protected:
CBCGPDockingControlBar* m_pBarLeftTop;
CBCGPDockingControlBar* m_pBarRightBottom;
CBCGPSlider* m_pSlider;
CBCGPBarContainer* m_pLeftContainer;
CBCGPBarContainer* m_pRightContainer;
CBCGPBarContainer* m_pParentContainer;
CBCGPBarContainerManager* m_pContainerManager;
int m_nRecentPercent;
BOOL m_bIsRecentSliderHorz;
LONG m_dwRefCount;
DWORD m_dwRecentSliderStyle;
CRect m_rectRecentSlider;
UINT m_nSavedLeftBarID;
UINT m_nSavedRightBarID;
UINT m_nSavedSliderID;
CList<UINT, UINT> m_lstSavedSiblingBarIDsLeft;
CList<UINT, UINT> m_lstSavedSiblingBarIDsRight;
CRect m_rectSavedSliderRect;
BOOL m_bSavedSliderVisibility;
protected:
void AddNode (CBCGPBarContainer* pContainer);
void CleanUp ();
void SetContainerManager (CBCGPBarContainerManager* p, BOOL bDeep = FALSE);
void MoveWnd (CWnd* pWnd, int nOffset, BOOL bHorz);
void SaveTabbedBar (CArchive& ar, CBCGPDockingControlBar* pBar);
CBCGPDockingControlBar* LoadTabbedBar (CArchive& ar, CList<UINT, UINT>& lstBarIDs);
void FreeReleasedContainer ();
BOOL IsSliderHorz () const;
};
#endif // !defined(AFX_BCGPBARCONTAINER_H__12D1AE1B_A125_4319_B94F_1A4F0C396BFD__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -