約 700 項目を含む ActiveX コントロール内にリスト ビューがあります。フィルター イベントが発生すると、以下のコードを使用してリスト ビューから項目が削除され、フィルター処理された少数の項目のみが残ります。700 個のアイテムのうち最初の 300 個が正常に削除されていることに気付きましたが、残りは削除できません (ListView_DeleteItem は false を返します)。後続のコードの呼び出しでは、削除する必要がある残りのアイテムの半分が削除され、さらに半分が削除されます。最終的には、削除する必要があるすべてのアイテムが削除されますが、おそらく以下のループを 5 回または 6 回呼び出す必要があります。
for (size_t rowNum=0; rowNum < toDelete.size() ; rowNum ++)
{
bool result = ListView_DeleteItem(listCtrl, rowNum);
}