CListView selbst zeichnen



  • In meiner CListView wird jedem Element als Daten ein Zeiger auf eine Klasse übergeben. Jedes Element der Klasse hat ein SubItem.
    Weil die meisten Felder Textfelder sind, will ich in LVITEM.pszText keine Kopie des schon in den Objekten der Klasse gespeicherten CStrings ablegen.
    Außerdem soll es möglich sein, bestimmte Zeilen fett darzustellen.

    Wie kann ich daher Windows sagen, dass er die Kontrolle über das Zeichnen an mein Programm übergeben soll? Was muss ich dabei beachten/Wie muss ich vorgehen?

    Danke.



  • aus der MSDN:

    Ein Listenansicht-Steuerelement speichert für jedes Element in der Regel den Bezeichnungstext, den Bildlistenindex der Elementsymbole und die Bitflags für den Elementstatus. Sie können einzelne Elemente als Rückrufelemente definieren. Diese sind hilfreich, wenn eine Anwendung bereits bestimmte Informationen für ein Element speichert.

    Ein Element wird als Rückrufelement definiert, indem geeignete Werte für den pszText-Member und den iImage-Member der LV_ITEM-Struktur angegeben werden (siehe CListCtrl::GetItem). Wenn die Anwendung den Text des Elements oder Unterelements verwaltet, muss der LPSTR_TEXTCALLBACK-Wert für den pszText-Member angegeben werden. Wenn die Anwendung das Symbol für das Element verfolgt, muss der I_IMAGECALLBACK-Wert für den iImage-Member angegeben werden.

    CListCtrl::SetCallbackMask()

    scheint zu meiner 1. Frage zu passen. Aber wo erfolgt der Callback? Welche Methode muss ich dazu überschreiben?




Anmelden zum Antworten