class
CGridCtrl :
public
CWnd
{
//
1. CGridCtrl类的构造函数
CGridCtrl(
int
nRows
=
0
,
int
nCols
=
0
,
int
nFixedRows
=
0
,
int
nFixedCols
=
0
);
BOOL Create(
const
RECT
&
rect, CWnd
*
parent, UINT nID,
DWORD dwStyle
=
WS_CHILD
|
WS_BORDER
|
WS_TABSTOP
|
WS_VISIBLE);
//
2. 表格行、列数方面的函数
BOOL SetRowCount(
int
nRows);
//
设置表的行数
BOOL SetColumnCount(
int
nCols);
//
设置表的列数
BOOL SetFixedRowCount(
int
nFixedRows
=
1
);
//
设置表的固定行数
BOOL SetFixedColumnCount(
int
nFixedCols
=
1
);
//
设置表的固定列数
int
GetFixedRowCount()
const
;
//
取表的固定行数
int
GetFixedColumnCount()
const
;
//
取表的固定列数
……
//
3. 表格尺寸大小方面的函数
BOOL SetRowHeight(
int
row,
int
height);
//
设置表格单元的高度
BOOL SetColumnWidth(
int
col,
int
height);
//
设置表格单元的宽度
int
GetRowHeight(
int
nRow)
const
;
//
获取表格单元的高度
int
GetColumnWidth(
int
nCol)
const
;
//
获取表格单元的宽度
void
AutoSize();
//
对表格单元的高度与宽度进行自动设置
……
//
4. 表格显示与特征方面的函数
void
SetImageList(CImageList
*
pList);
//
设置列表图标
void
SetEditable(BOOL bEditable
=
TRUE);
//
设置表格的编辑状态
BOOL SetColumnType(
int
nCol,
int
nType);
//
设置表格的列状态
……
//
5. 颜色方面的函数
void
SetTextColor(COLORREF clr);
//
设置输入表格的文本颜色
void
SetTextBkColor(COLORREF clr);
//
设置可供输入文本的表格颜色
void
SetFixedTextColor(COLORREF clr);
//
设置输入固定表格的文本颜色
void
SetFixedBkColor(COLORREF clr);
//
设置固定表格颜色
……
//
6. 表格信息函数
BOOL SetItem(
const
GV_ITEM
*
pItem);
//
向表格中输入信息
BOOL SetItemText(
int
nRow,
int
nCol, LPCTSTR str);
//
向某一单元表格中输入文本
BOOL SetItemImage(
int
nRow,
int
nCol,
int
iImage);
//
在某一单元表格中设置图标
……
//
7. 编辑方面的函数
virtual
void
OnEditCell(
int
nRow,
int
nCol, UINT nChar)
//
开始对表格进行编辑
virtual
void
OnEndEditCell(
int
nRow,
int
nCol, CString str)
//
结束对表格编辑
……
//
8. 表格打印函数
void
Print();
//
打印表格
……
}
;
CGridCtrl类的构造函数形式如下:
int
nRows,
int
nCols,
int
nFixedRows,
int
nFixedCols)
{
m_crWindowText
=
::GetSysColor(COLOR_WINDOWTEXT);
m_crWindowColour
=
::GetSysColor(COLOR_WINDOW);
m_cr3DFace
=
::GetSysColor(COLOR_3DFACE);
m_nRows
=
0
;
//
初始电子表格的行数
m_nCols
=
0
;
//
初始电子表格的列数
m_nFixedRows
=
0
;
//
初始化固定表格的行数
m_nFixedCols
=
0
;
//
初始化固定表格的列数
m_bEditable
=
TRUE;
//
初始化表格为可编辑状态
……
//
初始化设置表格的行列数
SetRowCount(nRows);
SetColumnCount(nCols);
SetFixedRowCount(nFixedRows);
SetFixedColumnCount(nFixedCols);
//
初始化表格的背景颜色及输入表格的文本颜色
SetTextColor(m_crWindowText);
SetTextBkColor(m_crWindowColour);
SetFixedTextColor(m_crWindowText);
SetFixedBkColor(m_cr3DFace);
……
}
对表格中所输入信息属性的描述,是通过定义一结构体函数来实现,该结构体函数形式如下:
struct
_GV_ITEM
{
int
row,col;
//
输入信息的位置
UINT mask;
//
输入信息的灰度值
UINT state;
//
表格单元的状态
UINT nFormat;
//
信息的输入形式
CString szText;
//
输入表格单元的文本
}
GV_ITEM;
将CGridCtrl类与以下类结合起来,即可构造成在其上可进行编辑和修改的电子
表格,这些类分别为:
1.用于单元表格范围的两个类:CCellRange[2]类和CCellID[3]类;
2.单元表格状态属性的类:CGridCell[4]类;
3.对表格进行编辑的两个类:CInplaceEdit[5]类和CInplaceList[6]类;