Warum bekommt von CListCtrl abgeleitete Klasse keine DrawItem-Nachrichten??



  • Hallo,

    hier noch mal die Frage::

    Ich habe eine eigene Klasse von CListCtrl abgeleitet und in ihr die Methoden OnDrawItem() und OnMeasureItem() überschrieben.

    !!!ALLERDINGS werden diese MEthoden vom Framework absolut NIE aufgerufen...!!!

    Weiß jemand, woran das liegen könnte?? (ich hab im ResourcenDialog das Feld OwnerDraw angeklickt und wieder ausgemacht...hat keine Auswirkung...)

    Wenn OnDrawItem() nicht aufgerufen wird...wie kann man dann die CListCtrl-Einträge benutzerdefiniert zeichnen???

    Ich habe versucht, das WM_DRAWITEM-event selbst zu verschicken...das kommt dann auch an, aber WIE muß ICH DIE FELDER VON LPDRAWITEMSTRUCT vor dem VERSENDEN DER NACHRICHT RICHTIG BEFÜLLEN....

    Es wäre sehr nett, wenn sich da einer der Experten mal kurz zeit nimmt...ich finde das ist alles nicht so selbsterklärend....

    BESTEN DANK...



  • Afaik wird WM_DRAWITEM nur gesendet, wenn du eine Ownerdrawn Listbox definiert hast (Create() mit LVS_OWNERDRWANFIXED) - und dann geht sie zunächst an den Besitzer der Listbox (sprich: den Dialog).



  • Hi,

    danke für deine Antwort:

    Also, ich habe die CListCtrl im ResourcenEditor mit dem Häkchen bei "Owner Draw Fixed" erzeugt....das meinst du doch oder??

    ==> ich hab eben mal in meiner Dialogklasse die OnItemDraw() überschrieben...diese Methode wird ebenfalls NIE aufgerufen...wie kriegt dieses MFC bloß die Listeneinträge in die ListCtrl...???!!!!

    ==>wer oder was ist "Afaik"???

    Bin völlig ratlos....



  • maxpower24 schrieb:

    Also, ich habe die CListCtrl im ResourcenEditor mit dem Häkchen bei "Owner Draw Fixed" erzeugt....das meinst du doch oder??

    Ja, das meinte ich (eigentlich)

    ==> ich hab eben mal in meiner Dialogklasse die OnItemDraw() überschrieben...diese Methode wird ebenfalls NIE aufgerufen...wie kriegt dieses MFC bloß die Listeneinträge in die ListCtrl...???!!!!

    Kann sein, daß das die falsche Methode ist - richtig heißt es OnDrawItem().

    ==>wer oder was ist "Afaik"???

    "Afaik" = "As Far As I Know" = soweit ich weiß 🙂



  • Hi..

    nochmal danke für deinen Beitrag...

    die Methode habe ich schon mit dem richtigen Namen überschrieben...ich habe ja auch hier den Klassenassi mit zur Hilfe genommen...kann mich also gar nicht verschrieben haben....daran liegt es also schon mal nicht....:'(

    noch andere ideen???

    Es kann doch nicht sein, dass ich der erste Mensch auf dieser Welt bin, der mal die Items einer ListCtrl benutzerdefiniert zeichnen will....


Anmelden zum Antworten