ROWVIEW.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:

Windows编程

开发平台:

Visual C++

  1. // rowview.h : interface of the CRowView class
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1998 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12. // This class implements the behavior of a scrolling view that presents
  13. // multiple rows of fixed-height data.  A row view is similar to an
  14. // owner-draw listbox in its visual behavior; but unlike listboxes,
  15. // a row view has all of the benefits of a view (as well as scroll view),
  16. // including perhaps most importantly printing and print preview.
  17. class CRowView : public CScrollView
  18. {
  19. DECLARE_DYNAMIC(CRowView)
  20. public:
  21. CRowView();
  22. // Attributes
  23. protected:
  24. int m_nRowWidth;            // width of row in current device units
  25. int m_nRowHeight;           // height of row in current device untis
  26. int m_nPrevSelectedRow;     // index of the most recently selected row
  27. int m_nPrevRowCount;        // most recent row count, before update
  28. int m_nRowsPerPrintedPage;  // how many rows fit on a printed page
  29. // Operations
  30. public:
  31. virtual void UpdateRow(int nInvalidRow);    // called by derived class's
  32. // OnUpdate
  33. // Overridables
  34. protected:
  35. virtual void GetRowWidthHeight(CDC* pDC, int& nRowWidth,
  36. int& nRowHeight) = 0;
  37. virtual int GetActiveRow() = 0;
  38. virtual int GetRowCount() = 0;
  39. virtual void OnDrawRow(CDC* pDC, int nRow, int y, BOOL bSelected) = 0;
  40. virtual void ChangeSelectionNextRow(BOOL bNext) = 0;
  41. virtual void ChangeSelectionToRow(int nRow) = 0;
  42. // Implementation
  43. protected:
  44. // standard overrides of MFC classes
  45. void OnInitialUpdate();
  46. virtual void OnDraw(CDC* pDC);  // overridden to draw this view
  47. virtual void OnPrepareDC(CDC* pDC, CPrintInfo* pInfo = NULL);
  48. virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
  49. virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
  50. virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo);
  51. virtual void CalculateRowMetrics(CDC* pDC)
  52. { GetRowWidthHeight(pDC, m_nRowWidth, m_nRowHeight); }
  53. virtual void UpdateScrollSizes();
  54. virtual CRect RowToWndRect(CDC* pDC, int nRow);
  55. virtual int RowToYPos(int nRow);
  56. virtual void RectLPtoRowRange(const CRect& rectLP,
  57. int& nFirstRow, int& nLastRow, BOOL bIncludePartiallyShownRows);
  58. virtual int LastViewableRow();
  59. virtual ~CRowView();
  60. // Generated message map functions
  61. protected:
  62. //{{AFX_MSG(CRowView)
  63. afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  64. afx_msg void OnSize(UINT nType, int cx, int cy);
  65. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  66. //}}AFX_MSG
  67. DECLARE_MESSAGE_MAP()
  68. };