www.pudn.com > hotel2003.rar > CoolControlBar.h
/*######################################################################## Filename: CoolControlbar.h ---------------------------------------------------- Remarks: ... ---------------------------------------------------- ########################################################################*/ #if !defined(_ANYOU_COOLCONTROLBAR_H) #define _ANYOU_COOLCONTROLBAR_H #if _MSC_VER > 1000 #pragma once #endif #include// for CDockContext #include // for CArray #define TITLE_HEIGHT 23 #define SIZING_WIDTH 5 #if !defined CBRS_TITLEBAR #define CBRS_TITLEBAR CBRS_GRIPPER #endif /*######################################################################## ------------------------------------------------------------- CFriendDockBar dummy class for access to protected members ------------------------------------------------------------- ########################################################################*/ class CFriendDockBar : public CDockBar { friend class CCoolControlBar; }; class CCoolControlBar; typedef CTypedPtrArray CCoolBarArray; /*######################################################################## ------------------------------------------------ class CCoolControlBar ------------------------------------------------ ########################################################################*/ class CCoolControlBar : public CControlBar { DECLARE_DYNAMIC(CCoolControlBar); // Construction-------------------------------------------------- public: CCoolControlBar(); virtual ~CCoolControlBar(); BOOL Create(CWnd* pParentWnd, CSize size, UINT dwStyle, UINT uID); // Attributes---------------------------------------------------- protected: CSize m_szHorz; CSize m_szVert; CSize m_szFloat; CSize m_szDefault; int m_bTrackType; BOOL m_bParentSizing; BOOL m_bTracking; CPoint m_oldPoint; CRect m_rcCloseButton; DWORD m_dwButtonState; static CCoolBarArray m_arrBars; // Operations---------------------------------------------------- public: BOOL IsHorizontal(); int FindCoolBar(CControlBar* pBar); static void LoadStates(LPCTSTR lpszProfileName); static void SaveStates(LPCTSTR lpszProfileName); // Overrides----------------------------------------------------- //{{AFX_VIRTUAL(CCoolControlBar) public: virtual CSize CalcFixedLayout(BOOL bStretch, BOOL bHorz); virtual CSize CalcDynamicLayout(int nLength, DWORD dwMode); virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler); virtual BOOL DestroyWindow(); //}}AFX_VIRTUAL // Implementation------------------------------------------------ protected: int GetLastBar(); int GetFirstBar(); void GetCoolBars(CCoolBarArray &arrCoolBars); BOOL GetTrackRect(CRect& rcTrack, int nEdge); void UpdateWndSize(CPoint point); BOOL AutoSize(int nLengthAvail, BOOL bHorz); void AutoAlign(); virtual void LoadState(LPCTSTR lpszProfileName); virtual void SaveState(LPCTSTR lpszProfileName); virtual void DrawCloseButton(CDC* pDC, DWORD dwState); virtual void DrawTitleBar(CDC* pDC, const CRect& rect, BOOL bHorz); // Generated message map functions------------------------------- protected: //{{AFX_MSG(CCoolControlBar) afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg BOOL OnEraseBkgnd(CDC* pDC); afx_msg void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp); afx_msg void OnNcPaint(); afx_msg void OnPaint(); afx_msg void OnWindowPosChanging(WINDOWPOS FAR* lpwndpos); afx_msg void OnNcLButtonDown(UINT nHitTest, CPoint point); afx_msg void OnNcLButtonUp(UINT nHitTest, CPoint point); afx_msg void OnMouseMove(UINT nFlags, CPoint point); afx_msg void OnLButtonUp(UINT nFlags, CPoint point); afx_msg UINT OnNcHitTest(CPoint point); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; //{{AFX_INSERT_LOCATION}} #endif // !defined(_ANYOU_COOLCONTROLBAR_H)