Ich habe gerade eines der neuen (MFC Feature Pack) CVSListBox Controls zu einem Projekt hinzugefügt. Die Liste der Elemente in dem Steuerelement wird von einigen anderen Objekten in meiner Anwendung verfolgt, so dass ich viele Benachrichtigungen von der Listbox erhalten muss, wenn sich etwas ändert, damit ich andere Dinge aktualisieren kann. Für diejenigen, die das Steuerelement nicht kennen, gibt es eine Schaltflächenleiste, die grundlegende Funktionen zum Hinzufügen/Löschen/Bestellen bietet.
Das CVSListBox-Steuerelement bietet überschreibbare virtuelle Funktionen für Dinge wie das Hinzufügen oder Umbenennen von Elementen und das Ändern ihrer Reihenfolge - all dies funktioniert gut.
Für das Löschen von Elementen gibt es jedoch nur die Überschreibung OnBeforeRemoveItem, die aufgerufen wird, BEVOR ein Element entfernt wird, und von der man TRUE/FALSE zurückgeben muss, um das Entfernen zu erlauben. Sobald das Entfernen erfolgt ist, gibt es keine spezifische Benachrichtigung.
Wie kann ich am besten NACH einer Entfernung benachrichtigt werden?
Offensichtlich ist es möglich, etwas schrecklich hier zu hacken, in dem es eine Auswahl-geändert-Ereignis nach einem entfernen, und es wäre möglich, ein Flag von der vor-entfernen zu halten, um zu sagen, dass die nächste Auswahl-geändert ist speziell. Aber ich habe das Gefühl, dass ich etwas Sauberes und Offensichtlicheres vermisse. Irgendwelche Vorschläge?