【MFC笔记】GridCtrl表格控件的使用
1、将百度网盘保存的“GridCtrl”文件保存到源代码目录下。
网址https://www.codeproject.com/Articles/8/MFC-Grid-control
2、所有内容添加到资源管理器。
3、从工具箱拉一个Custom Control控件,确定位置。
4、属性CLASS设置为MFCCGridCtrl。
5、添加变量,变量类型为CGrideCtrl。
6、在对话框初始化程序中添加代码测试
// TODO: 在此添加额外的初始化代码
CRect cr;
//m_Grid.GetWindowRect(&cr);//获得画图区域
m_Grid.GetClientRect(&cr);
int nRowNum = 6;
m_Grid.SetColumnCount(6);//设置6列
m_Grid.SetRowCount(nRowNum);//设置3行
m_Grid.SetFixedRowCount(1);
m_Grid.SetFixedColumnCount(1);//表头一行一列
CString rowName, colName;
for (int i = 0; i<6; i++)
{
m_Grid.SetColumnWidth(i, cr.Width() / 5);//设置列宽
rowName.Format(_T("第%d行"), i);
colName.Format(_T("第%d列"), i);
m_Grid.SetItemText(0, i, colName);//设置内容
if (i < nRowNum) {
m_Grid.SetRowHeight(i, cr.Height() / nRowNum);//设置行高
m_Grid.SetItemText(i, 0, rowName);
}
}
COLORREF clr = RGB(255, 255, 0);
m_Grid.SetFixedTextColor(clr);//设置固定行的颜色
m_Grid.SetFixedBkColor(RGB(0, 255, 255));//设置固定行的背景颜色
m_Grid.SetTextBkColor(clr);//设置可编辑区域背景颜色
m_Grid.SetTextColor(RGB(0, 255, 255));//设置可编辑区域文字颜色
m_Grid.SetEditable(false);//表格内容不可编辑设置
运行出现错误,将SDL检查关闭
7、其他常见操作
很多很多,有时间再整理了
int GetRowCount() const |
返回行数(包括固定行) |
int GetColumnCount() const |
返回列数(包括固定列) |
int GetFixedRowCount() const |
返回固定行数 |
int GetFixedColumnCount() const |
返回固定列的数量 |
BOOL SetRowCount(int nRows) |
设置行数(包括固定行),成功时返回TRUE。 |
BOOL SetColumnCount(int nCols) |
设置列数(包括固定列),成功时返回TRUE。 |
BOOL SetFixedRowCount(int nFixedRows = 1) |
设置固定行数,成功时返回TRUE。 |
BOOL SetFixedColumnCount(int nFixedCols = 1) |
设置列数,成功时返回TRUE。 |
int GetRowHeight(int nRow) const
获取行nRow的高度。
BOOL SetRowHeight(int row, int height)
设置行nRow的高度。
int GetColumnWidth(int nCol) const
获取列nCol的宽度
BOOL SetColumnWidth(int col, int width)
设置列nCol的宽度。
int GetFixedRowHeight() const
获取固定行的组合高度。
int GetFixedColumnWidth() const
获取固定列的组合宽度。
long GetVirtualHeight() const
获取所有行的组合高度。
long GetVirtualWidth() const
获取所有列的组合宽度。
BOOL GetCellOrigin(int nRow, int nCol,LPPOINT p)
获取单元格(nRow,nCol)的topleft点,如果成功则返回TRUE。(细胞必须是可见的才能成功)。
BOOL GetCellOrigin(const CCellID& cell,LPPOINT p)
获取给定单元格的topleft点,如果成功则返回TRUE。(细胞必须是可见的才能成功)。另请参见CCellID 。
BOOL GetCellRect(int nRow, int nCol,LPRECT pRect)
获取给定单元格的边界矩形,如果成功则返回TRUE。(细胞必须是可见的才能成功)。
BOOL GetCellRect(const CCellID& cell, LPRECT pRect)
获取给定单元格的边界矩形,如果成功则返回TRUE。(细胞必须是可见的才能成功)。另请参见CCellID 。
BOOL GetTextRect(int nRow, int nCol,LPRECT pRect)t
获取给定单元格中文本的边界矩形,如果成功则返回TRUE。(细胞必须是可见的才能成功)。
BOOL GetTextRect(const CCellID& cell, LPRECT pRect)
获取给定单元格中文本的边界矩形,如果成功则返回TRUE。(细胞必须是可见的才能成功)。另请参见CCellID 。
BOOL GetTextExtent(int nRow, int nCol,LPCTSTR str)
获取给定单元格的给定文本的边界矩形,如果成功则返回TRUE。BOOL GetCellTextExtent(int nRow, int nCol)
获取给定单元格中文本的边界矩形,如果成功则返回TRUE。