Próbuje edytowac elementy CListCtrl ale mam problem.
Napisałem coś takiego:

#pragma once


// CGListCtrl

class CGListCtrl : public CListCtrl
{
	DECLARE_DYNAMIC(CGListCtrl)

public:
	CGListCtrl();
	virtual ~CGListCtrl();

protected:
	DECLARE_MESSAGE_MAP()
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
public:
	afx_msg void OnLvnBeginlabeledit(NMHDR *pNMHDR, LRESULT *pResult);
public:
	int m_nItem;
public:
	int m_nSubItem;
public:
	afx_msg void OnLvnEndlabeledit(NMHDR *pNMHDR, LRESULT *pResult);
public:
	afx_msg void OnNMClick(NMHDR *pNMHDR, LRESULT *pResult);
};


#include "stdafx.h"
#include "GListCtrl.h"

// CGListCtrl

IMPLEMENT_DYNAMIC(CGListCtrl, CListCtrl)

CGListCtrl::CGListCtrl()
: m_nItem(0)
, m_nSubItem(0)
{

}

CGListCtrl::~CGListCtrl()
{
}


BEGIN_MESSAGE_MAP(CGListCtrl, CListCtrl)
	ON_NOTIFY_REFLECT(LVN_BEGINLABELEDIT, &CGListCtrl::OnLvnBeginlabeledit)
	ON_NOTIFY_REFLECT(LVN_ENDLABELEDIT, &CGListCtrl::OnLvnEndlabeledit)
	ON_NOTIFY_REFLECT(NM_CLICK, &CGListCtrl::OnNMClick)
END_MESSAGE_MAP()



// CGListCtrl message handlers



BOOL CGListCtrl::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Add your specialized code here and/or call the base class
	cs.style |= 
		LVS_REPORT | 
		LVS_EDITLABELS |
		WS_BORDER;
	return CListCtrl::PreCreateWindow(cs);
}

void CGListCtrl::OnLvnBeginlabeledit(NMHDR *pNMHDR, LRESULT *pResult)
{
	NMLVDISPINFO *pDispInfo = reinterpret_cast<NMLVDISPINFO*>(pNMHDR);
	// TODO: Add your control notification handler code here
	CEdit *pEdit = GetEditControl();
	pEdit->SetWindowTextW(GetItemText(m_nItem, m_nSubItem));

	*pResult = 0;
}

void CGListCtrl::OnLvnEndlabeledit(NMHDR *pNMHDR, LRESULT *pResult)
{
	NMLVDISPINFO *pDispInfo = reinterpret_cast<NMLVDISPINFO*>(pNMHDR);
	// TODO: Add your control notification handler code here

	CEdit *pEdit = GetEditControl();
	ASSERT(pEdit != NULL);
	
	CString strItem;
	pEdit->GetWindowTextW(strItem);
	SetItemText(m_nItem, m_nSubItem, strItem);
	
	*pResult = 0;
}

void CGListCtrl::OnNMClick(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO: Add your control notification handler code here
	NMITEMACTIVATE* nm=(NMITEMACTIVATE*)pNMHDR;
	//zapamietanie kolumny i wiersza klinietego elementu
	m_nItem=nm->iItem;
	m_nSubItem=nm->iSubItem;
	
	*pResult = 0;
}

Po kliknięciu w dowolny element mogę go edytowac, ale kontrolka 'EDIT' pojawia się tylko w pierwszej kolumnie. Jest jakiś sposób żeby żeby ją przesuwac? Probowałem w OnLvnBeginlabeledit przesuwac, ale bezskutecznie. Wydaje mi się że pozycja edita jest ustawiana później.
Robił już ktoś, coś takiego?