アイテムの表示に時間が掛かってしまうことがあります。アイテムを追加する代わりに、アイテムが表示されるタイミングを検出することになります。アイテムがリストビューに追加されているように見せかけることができます。仮想リストビューでは、アイテムの総数をリストビューが表示される前に設定しておく必要があります。アイテムの総数を設定することで、どれだけのスクロールが必要になるかを伝えることができます。アイテムの総数を設定するには、ListView_SetItemCountExを呼び出します。dwFlags);hwndLVは、リストビューのハンドルを指定します。cItemsは、リストビューに設定するアイテムの数を指定します。dwFlagsは、アイテムの数を設定した際のリストビューの動作を指定します。通常は、LVSICF_NOINVALIDATEALLを指定します。今回のプログラムは、仮想リストビューの使い方を示しています。lParam);}リストビューを仮想リストビューにするには、ウインドウスタイルにLVS_OWNERDATAを指定します。ListView_SetItemCountExでアイテムの総数を設定しておきます。今回は、ANSIコード表のAからzまでの文字を表示するということで、総数を58に設定しています。HeapAllocでメモリを確保し、各文字を設定しておきます。WM_NOTIFYのLVN_GETDISPINFOは、リストビューの中で見えているアイテムの数だけ送られます。アイテムの総数がどれだけ多くても速度に変化はありません。item.pszTextにアイテムのテキストを設定すべきことを意味しています。アイテムに関連するテキストは、アイテムのインデックスであるitem.iItemをlpDataに指定すれば分かります。見えているアイテムの中で最初のアイテムのインデックスはListView_GetTopIndexで取得することができます。見えていないアイテムを表示したい場合は、ListView_EnsureVisibleを呼び出します。