VC++6.0 MFCGridCtrl单元格编辑事件(失去焦点)

本周改一个需求,MFCGridCtrl中要求能修改单元格的内容,并且内容变动之后要程序要执行其他动作。

网上一番查询,找到了方法:

https://www.codeproject.com/Articles/8/MFC-Grid-control-2-27#EditValidate

我的代码如下两步:

1. 方法绑定事件

2. 方法定义

BEGIN_MESSAGE_MAP(TestCheckDlg, CDialog)
	//{{AFX_MSG_MAP(TestCheckDlg)
	//...
	// Add a handler
	ON_NOTIFY(GVN_ENDLABELEDIT, IDC_GRID1, FuncTest)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()



//必须要带NMHDR和LRESULT这两个参数,否则会报错
void TestCheckDlg::FuncTest(NMHDR *pNotifyStruct, LRESULT* pResult) 
{
    NM_GRIDVIEW* pItem = (NM_GRIDVIEW*) pNotifyStruct;
    int row = (pItem->iRow)-1;        // 点击的行号(实测要减1)
    int col = (pItem->iColumn)-1;    // 点击的列号(实测要减1)

	//根据行号列号获取单元格内容
	CString newName = m_ctrl1.GetCellString(col, row);
    //...
	
}

VC++6.0 MFCGridCtrl单元格编辑事件(失去焦点)

问题解决。