SplitterControl.h
上传用户:seeker_wen
上传日期:2016-05-23
资源大小:2084k
文件大小:3k
源码类别:

ICQ/即时通讯

开发平台:

Visual C++

  1. /**************CSplitterControl interface***********
  2. * Class name :CSplitterControl
  3. * Purpose: Implement splitter control for dialog
  4. * or any other windows.
  5. * Author: Nguyen Huy Hung, Vietnamese student.
  6. * Date: May 29th 2002.
  7. * Note: You can use it for any purposes. Feel free
  8. * to change, modify, but please do not 
  9. * remove this.
  10. * No warranty of any risks.
  11. * (:-)
  12. */
  13. #if !defined(AFX_SPLITTERCONTROL_H__FEBBA242_B2C9_4403_B68D_E519D645CB15__INCLUDED_)
  14. #define AFX_SPLITTERCONTROL_H__FEBBA242_B2C9_4403_B68D_E519D645CB15__INCLUDED_
  15. #if _MSC_VER > 1000
  16. #pragma once
  17. #endif // _MSC_VER > 1000
  18. // SplitterControl.h : header file
  19. //
  20. /////////////////////////////////////////////////////////////////////////////
  21. // CSplitterControl window
  22. #define SPN_SIZED WM_USER + 1
  23. #define CW_LEFTALIGN 1
  24. #define CW_RIGHTALIGN 2
  25. #define CW_TOPALIGN 3
  26. #define CW_BOTTOMALIGN 4
  27. #define SPS_VERTICAL 1
  28. #define SPS_HORIZONTAL 2
  29. typedef struct SPC_NMHDR
  30. {
  31. NMHDR hdr;
  32. int delta;
  33. } SPC_NMHDR;
  34. class CSplitterControl : public CStatic
  35. {
  36. // Construction
  37. public:
  38. CSplitterControl();
  39. // Attributes
  40. public:
  41. protected:
  42. BOOL m_bIsPressed;
  43. int m_nType;
  44. int m_nX, m_nY;
  45. int m_nMin, m_nMax;
  46. int m_nSavePos; // Save point on the lbutton down 
  47. // message
  48. // Operations
  49. public:
  50. // Overrides
  51. // ClassWizard generated virtual function overrides
  52. //{{AFX_VIRTUAL(CSplitterControl)
  53. //}}AFX_VIRTUAL
  54. // Implementation
  55. public:
  56. static void ChangePos(CWnd* pWnd, int dx, int dy);
  57. static void ChangeWidth(CWnd* pWnd, int dx, DWORD dwFlag = CW_LEFTALIGN);
  58. static void ChangeHeight(CWnd* pWnd, int dy, DWORD dwFlag = CW_TOPALIGN);
  59. public:
  60. void SetRange(int nMin, int nMax);
  61. int GetStyle();
  62. int SetStyle(int nStyle = SPS_VERTICAL);
  63. void Create(DWORD dwStyle, const CRect& rect, CWnd* pParent, UINT nID);
  64. virtual ~CSplitterControl();
  65. // Generated message map functions
  66. protected:
  67. virtual void DrawLine(CDC* pDC, int x, int y);
  68. void MoveWindowTo(CPoint pt);
  69. //{{AFX_MSG(CSplitterControl)
  70. afx_msg void OnPaint();
  71. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  72. afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
  73. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  74. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  75. //}}AFX_MSG
  76. DECLARE_MESSAGE_MAP()
  77. };
  78. /////////////////////////////////////////////////////////////////////////////
  79. //{{AFX_INSERT_LOCATION}}
  80. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  81. #endif // !defined(AFX_SPLITTERCONTROL_H__FEBBA242_B2C9_4403_B68D_E519D645CB15__INCLUDED_)