Spaltentitel zur Laufzeit ändern
-
Moin Gemeinde,
wie kann ich den Titel einer Spalte in einem CListCtrl zur Laufzeit ändern?
m_myGrid.SetFocus(); if( !m_myGrid ) return; LVCOLUMN col; int cwWidth = m_myGrid.GetColumnWidth( column ); => OK col.mask = LVCF_TEXT | LVCF_WIDTH; m_myGrid.GetColumn( column, &col ); => Exception :open_mouth: col.pszText = cTitle; m_myGrid.SetColumn( column, &col );hab leider nichts passendes gefunden.
Thx schonmal
grüssle

-
MSDN - CListCtrl::GetColumn() schrieb:
If the mask member specifies the LVCF_TEXT value, the pszText member must contain the address of the buffer that receives the item text and the cchTextMax member must specify the size of the buffer.
--> Du mußt natürlich auch Platz bereitstellen, wo das List-Control den Titel eintragen kann, wenn du "LVCF_TEXT" angibst (aka - "ich will den Spaltennamen auslesen). Aber du willst ja nicht den Titel auslesen, sondern ändern.
(und was hat das LVCF_WIDTH mit dem Problem zu tun?)
-
Ok, Buffer und Grösse. Wer kommt nur auf so was

Thx & grüssle

-
Smitty schrieb:
Ok, Buffer und Grösse. Wer kommt nur auf so was

Bestimmt kein C++ Programmierer - ich hätte mit std::string oder CString anstelle der char-Zeiger gearbeitet, aber das kann man sich ja nicht aussuchen.
Randfrage: Wozu rufst du eigentlich GetColumn() auf? Du willst doch nicht die aktuellen Werte der Spalte auslesen, sondern "nur" neue Werte setzen.
-
CStoll schrieb:
Randfrage: Wozu rufst du eigentlich GetColumn() auf? Du willst doch nicht die aktuellen Werte der Spalte auslesen, sondern "nur" neue Werte setzen.
war eigentlich mehr zum testen.
grüssle
