⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sizecbar.h

📁 C++中的单元测试类库
💻 H
字号:
/////////////////////////////////////////////////////////////////////////// Copyright (C) 1998, 1999 by Cristi Posea// All rights reserved//// Use and distribute freely, except: don't remove my name from the// source or documentation (don't take credit for my work), mark your// changes (don't get me blamed for your possible bugs), don't alter// or remove this notice.// No warrantee of any kind, express or implied, is included with this// software; use at your own risk, responsibility for damages (if any) to// anyone resulting from the use of this software rests entirely with the// user.//// This class is intended to be used as a base class. Do not simply add// your code to this file - instead create a new class derived from// CSizingControlBar and put there what you need.// Modify this file only to fix bugs, and don't forget to send me a copy.//// Send bug reports, bug fixes, enhancements, requests, flames, etc.,// and I'll try to keep a version up to date.  I can be reached at://    cristip@dundas.com//// More details at MFC Programmer's SourceBook// http://www.codeguru.com/docking/docking_window.shtml or search// www.codeguru.com for my name if the article was moved.///////////////////////////////////////////////////////////////////////////#if !defined(__SIZECBAR_H__)#define __SIZECBAR_H__#include <afxpriv.h>    // for CDockContext#include <afxtempl.h>   // for CArray#if _MSC_VER >= 1000#pragma once#endif // _MSC_VER >= 1000/////////////////////////////////////////////////////////////////////////// CSCBButton (button info) helper classclass CSCBButton{public:    CSCBButton();    void Move(CPoint ptTo) {ptOrg = ptTo; };    CRect GetRect() { return CRect(ptOrg, CSize(11, 11)); };    void Paint(CDC* pDC);    BOOL    bPushed;    BOOL    bRaised;protected:    CPoint  ptOrg;};/////////////////////////////////////////////////////////////////////////// CSCBDockBar dummy class for access to protected membersclass CSCBDockBar : public CDockBar{    friend class CSizingControlBar;};/////////////////////////////////////////////////////////////////////////// CSizingControlBar control bar styles#define SCBS_EDGELEFT       0x00000001#define SCBS_EDGERIGHT      0x00000002#define SCBS_EDGETOP        0x00000004#define SCBS_EDGEBOTTOM     0x00000008#define SCBS_EDGEALL        0x0000000F#define SCBS_SHOWEDGES      0x00000010#define SCBS_GRIPPER        0x00000020/////////////////////////////////////////////////////////////////////////// CSizingControlBar control bar#ifndef baseCSizingControlBar#define baseCSizingControlBar CControlBar#endifclass CSizingControlBar;typedef CTypedPtrArray <CPtrArray, CSizingControlBar*> CSCBArray;class CSizingControlBar : public baseCSizingControlBar{    DECLARE_DYNAMIC(CSizingControlBar);// Constructionprotected:    CSizingControlBar();public:    virtual BOOL Create(LPCTSTR lpszWindowName, CWnd* pParentWnd,        CSize sizeDefault, BOOL bHasGripper, UINT nID,        DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_TOP);// Attributespublic:    CSize m_szHorz;    CSize m_szVert;    CSize m_szFloat;    const BOOL IsFloating() const;    const BOOL IsHorzDocked() const;    const BOOL IsVertDocked() const;    const BOOL IsSideTracking() const;// Operationspublic:    virtual void LoadState(LPCTSTR lpszProfileName);    virtual void SaveState(LPCTSTR lpszProfileName);    static void GlobalLoadState(LPCTSTR lpszProfileName);    static void GlobalSaveState(LPCTSTR lpszProfileName);// Overridables    virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler);// Overridespublic:    // ClassWizard generated virtual function overrides    //{{AFX_VIRTUAL(CSizingControlBar)    public:    virtual CSize CalcFixedLayout(BOOL bStretch, BOOL bHorz);    virtual CSize CalcDynamicLayout(int nLength, DWORD dwMode);    virtual BOOL DestroyWindow();    //}}AFX_VIRTUAL// Implementationpublic:    virtual ~CSizingControlBar();    protected:    // implementation helpers    UINT GetEdgeHTCode(int nEdge);    BOOL GetEdgeRect(CRect rcWnd, UINT nHitTest, CRect& rcEdge);    virtual void StartTracking(UINT nHitTest);    virtual void StopTracking();    virtual void OnTrackUpdateSize(CPoint& point);    virtual void OnTrackInvertTracker();    virtual void NcPaintGripper(CDC* pDC, CRect rcClient);    virtual void AlignControlBars();    const int FindSizingBar(CControlBar* pBar) const;    void GetRowInfo(int& nFirst, int& nLast, int& nThis);    void GetRowSizingBars(CSCBArray& arrSCBars);    BOOL NegociateSpace(int nLengthAvail, BOOL bHorz);protected:    static CSCBArray    m_arrBars;    DWORD   m_dwSCBStyle;    UINT    m_htEdge;    CSize   m_szMin;    CSize   m_szMinT;    CSize   m_szMaxT;    CSize   m_szOld;    CPoint  m_ptOld;    BOOL    m_bTracking;    BOOL    m_bKeepSize;    BOOL    m_bParentSizing;    BOOL    m_bDragShowContent;    UINT    m_nDockBarID;    int     m_cxEdge;    int     m_cyGripper;    CSCBButton m_biHide;// Generated message map functionsprotected:    //{{AFX_MSG(CSizingControlBar)    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);    afx_msg void OnNcPaint();    afx_msg void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp);    afx_msg UINT OnNcHitTest(CPoint point);    afx_msg void OnCaptureChanged(CWnd *pWnd);    afx_msg void OnSettingChange(UINT uFlags, LPCTSTR lpszSection);    afx_msg void OnLButtonUp(UINT nFlags, CPoint point);    afx_msg void OnMouseMove(UINT nFlags, CPoint point);    afx_msg void OnNcLButtonDown(UINT nHitTest, CPoint point);    afx_msg void OnLButtonDown(UINT nFlags, CPoint point);    afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);    afx_msg void OnRButtonDown(UINT nFlags, CPoint point);    afx_msg void OnNcLButtonUp(UINT nHitTest, CPoint point);    afx_msg void OnWindowPosChanging(WINDOWPOS FAR* lpwndpos);    afx_msg void OnPaint();    //}}AFX_MSG    DECLARE_MESSAGE_MAP()};#endif // !defined(__SIZECBAR_H__)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -