Header in der ListView
-
Hallo ,
bin gerade dabei ein paar Informationen in der ListView anzuzeigen.
Das Problem ist , ich weiß nicht wie ich den Header ( ListViewKopf - wo die
Bezeichnungen der Spalten stehen ) aufsetzen kann.Danke im voraus.
Gruß Silke
-
Dazu gibt es die Methode InsertColumn der Klasse CListCtrl.
Eine Referenz auf das CListCtrl-Object der ListView bekommst du mit GetListCtrl()
-
Hallo Mathe,
danke für deine Antwort.
Ich habe es gemacht , leider werden die Spaltennamen (Überschriften ) im Header nicht sangezeigt.
An was kann es liegen ?
Gruß Silke
-
Hallo Mathe,
danke für deine Antwort.
Ich habe es gemacht , leider werden die Spaltennamen (Überschriften ) im Header nicht angezeigt.
An was kann es liegen ?
Gruß Silke
-
Hallo Silke, der Style des CListViews muss LVS_REPORT sein, sonst kriegst du die header nicht angezeigt.
Mach in deiner PreCreateWindow Funktion einfach folgendes:BOOL CToDoListView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Speziellen Code hier einfügen und/oder Basisklasse aufrufen cs.style |= LVS_REPORT; // <- Einfügen return CListView::PreCreateWindow(cs); }
-
Hallo Günni,
hab's gemacht, trotzdem funktioniert's nicht.
Ich poste mal mein Code:Ich habe ein Steuerelement: List Control
Habe eine neue Klasse angelegt : CMyListView die ich von der Classe CListView
abgeleitet habe.
In der Klasse CMyListView habe ich die Methode PreCreateWindow( CREATESTRUCT& cs ) überschrieben .BOOL CMyListView::PreCreateWindow( CREATESTRUCT& cs ) { cs.style |= LVS_REPORT; return CListView::PreCreateWindow( cs ); }
Für das < List Control > habe ich eine Member angelegt :
CMyListView m_lvListView_Dateien;Und so setze ich den Header und es funktioniert nicht.
CListCtrl& poHeader = m_lvListView_Dateien.GetListCtrl(); poHeader.InsertColumn( 0 , "AAAAAAA" , LVCFMT_CENTER, 80 ); poHeader.InsertColumn( 1 , "BBBBBB" , LVCFMT_CENTER, 80 ); poHeader.InsertColumn( 2 , "CCCCCC" , LVCFMT_CENTER, 80 ); poHeader.InsertColumn( 3 , "DDDDDD" , LVCFMT_CENTER, 80 );
Ich habe so ein Gefühl dass bei den Eigenschaften , noch was eingestellt werden muss.
Aber was ?
Danke.
Gruß Silke
-
Hallo , habe selber herausgefunden.
habe bei den Eigenschaften
Ansicht auf Bericht umgeschaltet.Eigentlich habe ich die Eigenschaft mit dem Übeschreiben der Methode:
BOOL CMyListView::PreCreateWindow( CREATESTRUCT& cs ) eingestellt.Aber es hat trotzdem nicht geklappt.
Nur nach dem Umstellen der Eigenschaft auf Bericht klappt es.
Komisch ....Danke.
Gruß Silke
-
Habe leider noch ein Problem ,
ich kann den Header mit 4 Spalten anzeigen , aber ich kann keine Zeilen
mit Werten füllen.Anbei mein Code:
CListCtrl& poHeader = m_lvListView_Dateien.GetListCtrl(); poHeader.InsertColumn( 0 , "AAAAAAA" , LVCFMT_CENTER, 80 ); poHeader.InsertColumn( 1 , "BBBBBB" , LVCFMT_CENTER, 80 ); poHeader.InsertColumn( 2 , "CCCCCC" , LVCFMT_CENTER, 80 ); poHeader.InsertColumn( 3 , "DDDDDD" , LVCFMT_CENTER, 80 ); LV_ITEM item; item.mask = LVIF_TEXT; item.iItem=0; item.pszText = "Bla"; item.iSubItem=1; int itemNr = poHeader.InsertItem( &item ); poHeader.SetItem(&item);
Was mache ich falsch ?
Gruß Silke
Edit von estartu_de: Ich habe mal die Code-Tags nachgebessert. Bitte nutze sie, das erleichtert uns das Lesen. Lies mal: sfds