Introduction
This example demonstrates how to add "merge cells" ability to Chris Maunder's MFC Grid control (derived from CWnd
).
The example modifies only two classes: CGridCellBase
and CGridCtrl
. In the class CGridCellBase
,the following four private member variables are added:
CCellRange m_MergeRange;
bool m_IsMergeWithOthers;
CCellID m_MergeCellID;
bool m_Hide;
Six public member functions are also added:
void UnMerge();
virtual bool IsShow() ;
virtual CCellRange GetMergeRange();
virtual bool IsMergeWithOthers();
virtual CCellID GetMergeCellID();
virtual void SetMergeCellID(CCellID cell);
In the class CGridCtrl
, the following six public member functions are added:
CGridCellBase* GetCell(CCellID cell);
CCellID GetMergeCellID(CCellID cell);
void UnMergeSelectedCells();
void MergeSelectedCells();
void UnMergeCells(int nStartRow, int nStartCol, int nEndRow, int nEndCol);
void MergeCells(int nStartRow, int nStartCol, int nEndRow, int nEndCol);
Usage
- Use
CGridCtrl::MergeSelectedCells()
and MergeCells()
to merge the selected cells;
- Use
CGridCtrl::UnMergeSelectedCells()
and UnMergeCells()
to restore the selected cell to its original state.
History
- 1.7 fixed the bug when merging in the corner, by Luther Bruck - 2002/12/31
- 1.6 fixed the bug when resizing the merged row - 2002/11/20
- 1.5 fixed the bug when resizing the merged column - 2002/11/18
- 1.4 bug when printing merge cell across pages fixed - 2002/10/10
- 1.3 fixed cells merge added - 2002/9/27
- 1.2 print bug fixed - 2002/9/23
- 1.1 scroll bug fixed - 2002/9/18
- 1.0 first release - 2002/9/15
(Note that users of the Grid control are bound by Chris' copyright requirements detailed on his web page.)