Forum: PC-Programmierung CListCtrl editieren mit VC++ (VisualStudio2005)


von Jörg (Gast)


Lesenswert?

Hey !

Ich will eine Liste mit zwei Spalten machen. (Visual Studio 2005 mit 
VC++) Das klappt auch schon. Alle Einträge sollen editierbar sein. Ich 
fülle die Liste mit Daten. Wenn ich jetzt die erste Spalte editiere 
belibt der Wert nicht bestehen und wird nach dem Editieren wieder 
zurückgesetzt. Ich habe jetzt folgende Nachrichtenroutine eingebaut:

void CTerminalDLG::OnLvnEndlabeleditList1(NMHDR *pNMHDR, LRESULT 
*pResult)
{
  NMLVDISPINFO *pDispInfo = reinterpret_cast<NMLVDISPINFO*>(pNMHDR);
  // TODO: Fügen Sie hier Ihren Kontrollbehandlungscode für die 
Benachrichtigung ein.

  CString s;

  s=m_ListCtrl.GetItemText(m_index,0);   //m_index, Zeilenindex
  MessageBox(s);

  *pResult = 0;
}


Aber auch hier bekomme ich nur den alten Wert in der MessageBox 
angezeigt der vor dem Editieren in der Liste stand.


Vielleicht weiß ja jemand etwas was mir helfen kann.

MfG
Jörg

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Den neuen Text bekommst Du in pDispInfo->item.pszText übergeben.

Sinn vonn't janze ist, daß Du, bevor das Control den eingegebenen Text 
übernimmt, den Text auf inhaltliche Richtigkeit überprüfen kannst.

Das Control übernimmt den geänderten Wert, wenn Du mit dem Rückgabewert 
(*pResult) mitteilst, daß Du den Wert akzeptiert hast.

Das geschieht mit

  *pResult = 1;

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.