CheckerCtrl.h
上传用户:tianjwyx
上传日期:2007-01-13
资源大小:813k
文件大小:2k
源码类别:

操作系统开发

开发平台:

Visual C++

  1. #if !defined(AFX_CHECKERCTRL_H__AD4BC4E3_7750_11D4_8718_008048CA4A77__INCLUDED_)
  2. #define AFX_CHECKERCTRL_H__AD4BC4E3_7750_11D4_8718_008048CA4A77__INCLUDED_
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif // _MSC_VER > 1000
  6. // CheckerCtrl.h : header file
  7. //
  8. #include "afxtempl.h" 
  9. /////////////////////////////////////////////////////////////////////////////
  10. // CCheckerCtrl window
  11. #define WM_CHECKERCTRL_RBUTTONDOWN WM_USER + 100
  12. class CCheckerCtrl : public CWnd
  13. {
  14. // Construction
  15. public:
  16. CCheckerCtrl();
  17. // Attributes
  18. public:
  19. // Operations
  20. public:
  21. // Overrides
  22. // ClassWizard generated virtual function overrides
  23. //{{AFX_VIRTUAL(CCheckerCtrl)
  24. //}}AFX_VIRTUAL
  25. // Implementation
  26. public:
  27. void SetTotalBlocks(const UINT nNumberofBlocks, const UINT nStartIndex = 0);
  28. void Update(const UINT nBlockNumber);
  29. void Reset();
  30. void Refresh();
  31. void SetBlock(const UINT nBlockNumber, const COLORREF crColor);
  32. COLORREF GetBlock(const UINT nBlockNumber) const;
  33. BOOL Create(DWORD dwStyle, const RECT &rect, CWnd *pParentWnd, UINT nID);
  34. virtual ~CCheckerCtrl();
  35. // Generated message map functions
  36. protected:
  37. //{{AFX_MSG(CCheckerCtrl)
  38. afx_msg void OnPaint();
  39. afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
  40. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  41. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  42. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  43. afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
  44. //}}AFX_MSG
  45. DECLARE_MESSAGE_MAP()
  46. private:
  47. BOOL IsVisible(const UINT nBlockNumber);
  48. CRect GetRect(const UINT nRow, const UINT nColumn);
  49. void CreateSafeTooltipRect(int x, int y, LPCTSTR lpszText);
  50. void SetBlock(int nRow, int nColumn, CBrush &brush, CDC &dc);
  51. CWnd *m_pParentWnd;
  52. UINT m_nID;
  53. UINT m_nStartIndex;
  54. BOOL m_bShouldUpdated;
  55. CRect tooltipRect;
  56. UINT m_nTotalVisibleBlocks;
  57. UINT m_nBlockStartPos;
  58. int m_nyPos; 
  59. int m_nOffset;
  60. CRect m_rcClient;
  61. UINT m_nBlocksPerRow;
  62. UINT m_nBlocksPerColumn;
  63. UINT m_nNumberofBlocks;
  64. CBrush m_backgroundBrush;
  65. CArray <COLORREF, COLORREF> m_crColor;
  66. };
  67. /////////////////////////////////////////////////////////////////////////////
  68. //{{AFX_INSERT_LOCATION}}
  69. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  70. #endif // !defined(AFX_CHECKERCTRL_H__AD4BC4E3_7750_11D4_8718_008048CA4A77__INCLUDED_)