65.9K
CodeProject 正在变化。 阅读更多。
Home

为MFC GridControl添加“合并单元格”支持

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.87/5 (30投票s)

2002年9月15日

viewsIcon

441126

downloadIcon

8484

为 MFC GridControl 添加“合并单元格”支持。

Sample Image - gridcontrl.jpg

Sample Image - print.jpg

引言

本示例演示了如何为 Chris Maunder 的 MFC Grid 控件(从 CWnd 派生)添加“合并单元格”功能。

示例仅修改了两个类:CGridCellBaseCGridCtrl。在 CGridCellBase 类中,添加了以下四个私有成员变量

CCellRange m_MergeRange;
bool m_IsMergeWithOthers;
CCellID m_MergeCellID;
bool m_Hide;

还添加了六个公共成员函数

void UnMerge();
virtual bool IsShow() ;
virtual CCellRange GetMergeRange();
virtual bool IsMergeWithOthers();
virtual CCellID GetMergeCellID();
virtual void SetMergeCellID(CCellID cell);

CGridCtrl 类中,添加了以下六个公共成员函数

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);

用法

  • 使用 CGridCtrl::MergeSelectedCells()MergeCells() 合并选定的单元格;
  • 使用 CGridCtrl::UnMergeSelectedCells()UnMergeCells() 将选定的单元格恢复到其原始状态。

历史

  • 1.7 修复了在角落合并时的错误,作者:Luther Bruck - 2002/12/31
  • 1.6 修复了调整合并行大小时的错误 - 2002/11/20
  • 1.5 修复了调整合并列大小时的错误 - 2002/11/18
  • 1.4 修复了跨页合并单元格打印时的错误 - 2002/10/10
  • 1.3 修复了添加单元格合并的错误 - 2002/9/27
  • 1.2 修复了打印错误 - 2002/9/23
  • 1.1 修复了滚动错误 - 2002/9/18
  • 1.0 首次发布 - 2002/9/15

(请注意,Grid 控件的用户受 Chris 在他的网页上详细说明的版权要求约束。)

© . All rights reserved.