SplitterBar.h
上传用户:wymy58
上传日期:2007-01-07
资源大小:2086k
文件大小:2k
源码类别:

DirextX编程

开发平台:

Visual C++

  1. // CSplitterBar.h : header file
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4. #ifndef __SPLITTER_BAR_H__
  5. #define __SPLITTER_BAR_H__
  6. #if _MSC_VER >= 1000
  7. #pragma once
  8. #endif // _MSC_VER >= 1000
  9. #define WM_SPLITTER_MOVED WM_USER+1000
  10. /////////////////////////////////////////////////////////////////////////////
  11. // CSplitterBar
  12. class CSplitterBar : public CWnd
  13. {
  14. DECLARE_DYNAMIC(CSplitterBar)
  15. enum DRAGFLAG { DRAG_ENTER=0, DRAG_EXIT=1, DRAGGING=2 };
  16. protected:
  17. CRect m_rectSplitter;
  18. CRect m_rectDragPrev;
  19. CRect m_rectDragCurt;
  20. BOOL m_bDragging;
  21. CWnd *m_pwndLeftPane; //left pane window
  22. CWnd *m_pwndRightPane; //right pane window
  23. int m_cxLeftMost; //left most, relative to parent window
  24. int m_cxRightMost; //right most, relative to parent window
  25. CRect m_rectPosition; // position, relative to parent window
  26. // Construction
  27. public:
  28. CSplitterBar();
  29. BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
  30. // Attributes
  31. public:
  32. BOOL IsCursorOverSplitter( const CPoint& ptCursor );
  33. // Operations
  34. public:
  35. void DrawDraggingBar(CPoint point,DRAGFLAG df=DRAGGING);
  36. void SetPanes(CWnd *pwndLeftPane,CWnd *pwndRightPane);
  37. void MovePanes();
  38. // Overrides
  39. // ClassWizard generated virtual function overrides
  40. //{{AFX_VIRTUAL(CSplitterBar)
  41. //}}AFX_VIRTUAL
  42. // Implementation
  43. public:
  44. VOID SetPosition(LPCRECT lpRect);
  45. virtual ~CSplitterBar();
  46. // Generated message map functions
  47. protected:
  48. //{{AFX_MSG(CSplitterBar)
  49. afx_msg void OnPaint();
  50. afx_msg UINT OnNcHitTest(CPoint point);
  51. afx_msg int  OnCreate(LPCREATESTRUCT lpCreateStruct);
  52. afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
  53. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  54. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  55. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  56. //}}AFX_MSG
  57. DECLARE_MESSAGE_MAP()
  58. };
  59. /////////////////////////////////////////////////////////////////////////////
  60. //{{AFX_INSERT_LOCATION}}
  61. // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
  62. #endif