【MFC】GridCtrl表格控件——生成Grid

使用说明

  1. 新建对话框,将GridCtrl文件夹放入项目目录中。
    文件下载地址
    文件夹内容:
    请添加图片描述

  2. 将所有内容添加到资源管理器中。
    请添加图片描述

在dialog的xxx.h中添加头文件:
#include "GridCtrl_src/GridCtrl.h"

文件说明:

gridctrl.cpp, gridctrl.h Grid控件资源文件和头文件
gridcellbase.cpp, gridcellbase.h 单元格的基础类
gridcell.cpp, gridcell.h 单元格的默认执行文件
CellRange.h CcellID和CcellRange类的定义
MemDC.h Keith Rule’s的直接存储类
InPlaceEdit.cpp, InPlaceEdit.h 定位编辑窗口的源文件和头文件
GridDropTarget.cpp, GridDropTarget.h Grid容器的drag和drop对象 只有在gridctrl.h中没有定义 GRIDCONTROL_NO_DRAGDROP的时候才有必要使用。
Titletip.cpp, Titletip.h 从Zafir Anjum那里的到的单元格标题提示. 只有在gridctrl.h中没有定义 GRIDCONTROL_NO_TITLETIPS 的时候才有必要使用

  1. 在工具箱中取出Custom Control控件。
    请添加图片描述
    Custom Control的Class设置为MFCGridCtrl
    请添加图片描述
    添加变量,变量类型为CGridCtrl
    请添加图片描述

  2. 在对话框初始化程序中添加代码测试。

CRect cr;
m_Grid.GetClientRect(&cr);
int nRowNum = 6;
m_Grid.SetColumnCount(6);//设置6列
m_Grid.SetRowCount(nRowNum);//设置6行
m_Grid.SetFixedRowCount(1);

CString rowName, colName;
for (int i = 0; i < 6; i++)
{
	m_Grid.SetColumnWidth(i, cr.Width() / 12);//设置列宽
	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);
	}
}

m_Grid.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0));

生成的Grid:
请添加图片描述

参考文章

  1. 【MFC笔记】GridCtrl表格控件的使用
  2. GridCtrl学习笔记(1)建立使用GridCtrl的工程
  3. MFC Grid control 2.27
  4. MFCGridCtrl控件_使用心得
### 回答1: MFCGridCtrl是一个非常常见的表格控件,它可以用于显示和编辑数据表格。下面是一个简单的使用MFC GridCtrl的例子: 1. 首先,我们需要在项目中添加GridCtrl的头文件和源文件。可以从官方网站或其他资源下载GridCtrl的代码文件。 2. 在需要使用GridCtrl的对话框或窗口类中,添加一个成员变量,类型为CGXGridCtrl指针。 3. 在对话框或窗口的OnInitDialog()函数中,创建GridCtrl对象并设置其属性。例如: ```cpp m_pGridCtrl = new CGXGridCtrl; m_pGridCtrl->Create(WS_CHILD | WS_VISIBLE, CRect(10, 10, 300, 200), this, IDC_GRIDCTRL); m_pGridCtrl->SetRowCount(5); m_pGridCtrl->SetColumnCount(3); m_pGridCtrl->SetEditable(TRUE); ``` 这里我们创建了一个5行3列的表格,可编辑。 4. 添加数据到表格中。可以使用SetItemText函数设置每个单元格的文本内容。例如: ```cpp m_pGridCtrl->SetItemText(0, 0, _T("A1")); m_pGridCtrl->SetItemText(0, 1, _T("B1")); m_pGridCtrl->SetItemText(0, 2, _T("C1")); ... ``` 这里我们设置了第一行的文本内容。 5. 最后,记得在对话框或窗口销毁时,释放GridCtrl对象。例如,在OnDestroy()函数中: ```cpp if (m_pGridCtrl != NULL) { m_pGridCtrl->DestroyWindow(); delete m_pGridCtrl; m_pGridCtrl = NULL; } ``` 以上就是一个简单的使用MFC GridCtrl的例子,通过以上步骤,我们可以在MFC应用程序中轻松地添加和管理数据表格。当然,这只是一个简单的例子,GridCtrl还有很多其他功能和属性可以使用。你可以参考GridCtrl的官方文档,进一步了解和探索其更高级的用法。 ### 回答2: MFC GridCtrl是一个使用MFC框架开发的表格控件,可以用于创建和管理表格数据。下面是一个简单的例子。 首先,在MFC应用程序的对话框资源中添加一个自定义控件,可以命名为"m_gridCtrl"。 然后,在对话框类的头文件中添加以下代码: ```cpp #include "GridCtrl.h" // 包含GridCtrl的头文件 class CMyDialog : public CDialogEx { public: CGridCtrl m_gridCtrl; // 创建GridCtrl对象 // 省略其他代码 }; ``` 接下来,在对话框类的源文件中添加以下代码: ```cpp BOOL CMyDialog::OnInitDialog() { CDialogEx::OnInitDialog(); // 创建GridCtrl控件 CRect rect; GetDlgItem(IDC_GRID_CTRL)->GetClientRect(&rect); m_gridCtrl.Create(rect, this, IDC_GRID_CTRL); // 设置表格的行列数 m_gridCtrl.SetRowCount(5); m_gridCtrl.SetColumnCount(3); // 设置表格的列标题 m_gridCtrl.SetColumnTitle(0, "姓名"); m_gridCtrl.SetColumnTitle(1, "年龄"); m_gridCtrl.SetColumnTitle(2, "性别"); // 设置表格的单元格数据 m_gridCtrl.SetItemText(0, 0, "张三"); m_gridCtrl.SetItemText(0, 1, "20"); m_gridCtrl.SetItemText(0, 2, "男"); // 设置其他单元格数据,省略... return TRUE; } ``` 在对话框资源中,需要设置"IDC_GRID_CTRL"作为GridCtrl控件的ID。 以上代码实现了一个简单的GridCtrl表格控件例子,该例子在对话框中创建了一个表格控件,设置了表格的行列数、列标题和单元格数据。可以根据需要在此基础上进行扩展和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值