LVN_ODCACHEHINT-Message bei CListCtrl kommt nicht



  • Aus meiner Tabelle vom Type CListCtrl möchte ich den sichtbaren Teil der Daten grafisch darstellen. Dies sollte eigentlich in der Message von LVN_ODCACHEHINT passieren, ich komme dort aber nie an, egal ob ich den Scrollbalken bewege oder auf das Steuerelement klicke. Könnte es daran liegen, dass ich die Tabelle als Report-View und nicht, wie in der Hilfe angegeben, als List-View vereinbart habe ?



  • Laut MSDN muss es sich hierbei um ein virtuelles ListViewCtrl handeln, welches Du wohl nicht erstellt hast.
    Dann fang doch einfach LVN_ENDSCROLL ab, frage ab, ob sich GetTopIndex geändert hat und aktualisiere dann!



  • Hallo Rene,
    danke für Deinen Hinweis, offenbar sendet mein eingefügtes CListCtrl diese Message nicht, obwohl der ClassWizzard mir diese anbietet. Das Ereignis LVN_ENDSCROLL finde ich nirgends, wie kann ich dieses abfangen ?
    Notfalls muß ich mir etwas ganz anderes einfallen lassen.

    Vielen Dank
    Maik



  • Ich seh gerade, LVN_ENDSCROLL gibts erst ab WinXP ...

    Dann musst Du eben WM_VSCROLL innerhalb von PreTranslateMessage des ListCtrl-Parents verarbeiten und abfragen, ob gerade das ListCtrl gescrollt wird.



  • Nachtrag:
    Der ClassWizard bietet Dir deshalb LVN_ODCACHEHINT an, weil er nicht erkennen kann, ob es sich um ein virtuelles ListCtrl handelt!


Log in to reply