【MFC笔记】GridCtrl表格控件消息响应处理

本文介绍如何在MFC中使用GridCtrl表格控件,并详细讲解了当用户单击不同列时如何捕获并处理WM_NOTIFY消息,通过在父窗口中截取和解析消息,实现显示不同内容的功能。
摘要由CSDN通过智能技术生成

1、目标,单击不同的列,显示不同的内容。

2、在一个对话框中加一个custom ctrl的控件,控件里面加GridCtrl表格,点击的是表格里面的格子。

3、查看GridCtrl.cpp中有消息,如下。比如左键起来的时候,会向父窗口发一个WM_NOTIFY类型的消息,消息中包含的行列和消息类型的值。

 

4、在父窗口中截取消息进行处理,类向导,虚函数OnNotify();

BOOL CMyGridListDlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)

NM_GRIDVIEW *nmgv = (NM_GRIDVIEW*)(lParam);//取上传的数据
 int mcol = nmgv->iColumn;//可以解析出来行列消息类型等参数

### 回答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、付费专栏及课程。

余额充值